【Python爬虫数据分析】2018年电影,你看了几部?大数据应用

来源:互联网 / 作者:SKY / 2018-12-06 15:25 / 点击:
12月已开始了,离2018年的结束也就半个多月的时间了,还记得年初立下的flag吗?完成了多少?相信很多人和我一样,抱头痛哭...本次利用猫眼电影,实现对2018年的电

完成了多少?相信很多人和我一样,抱头痛哭...

本次利用猫眼电影,实现对2018年的电影大数据进行分析

【Python爬虫&数据分析】2018年电影,你看了几部?

一、网页分析

01 标签

【Python爬虫&数据分析】2018年电影,你看了几部?

通过点击猫眼电影已经归类好的标签,得到网址信息。

02 索引页

【Python爬虫&数据分析】2018年电影,你看了几部?

打开开发人员工具,获取索引页里电影的链接以及评分信息。

索引页一共有30多页,但是有电影评分的只有10页。

本次只对有电影评分的数据进行获取。

03 详情页

【Python爬虫&数据分析】2018年电影,你看了几部?

对详情页的信息进行获取。

主要是名称,类型,国家,时长,上映时间,评分,评分人数,累计票房。

二、反爬破解

【Python爬虫&数据分析】2018年电影,你看了几部?

通过开发人员工具发现,猫眼针对评分,评分人数,累计票房的数据,施加了文字反爬。

【Python爬虫&数据分析】2018年电影,你看了几部?

通过查看网页源码,发现只要刷新页面,三处文字编码就会改变,无法直接匹配信息。

所以需要下载文字文件,对其进行双匹配。

from fontTools.ttLib import TTFont 

 

#font = TTFont('base.woff'

#font.saveXML('base.xml'

font = TTFont('maoyan.woff'

font.saveXML('maoyan.xml'

将woff格式转换为xml格式,以便在Pycharm中查看详细信息。

利用下面这个网站,打开woff文件。

url:

可以得到下面数字部分信息(上下两块)。

在Pycharm中查看xml格式文件(左右两块),你就会发现有对应信息。

【Python爬虫&数据分析】2018年电影,你看了几部?

通过上图你就可以将数字6对上号了,其他数字一样的。

def get_numbers(u): 

    ""

    对猫眼的文字反爬进行破解 

    ""

    cmp = re.compile(",\n           url\('(//.*.woff)'\) format\('woff'\)"

    rst = cmp.findall(u) 

    ttf = requests.get("http:" + rst[0], stream=True

    with open("maoyan.woff""wb"as pdf: 

        for chunk in ttf.iter_content(chunk_size=1024): 

            if chunk: 

                pdf.write(chunk) 

    base_font = TTFont('base.woff'

    maoyanFont = TTFont('maoyan.woff'

    maoyan_unicode_list = maoyanFont['cmap'].tables[0].ttFont.getGlyphOrder() 

    maoyan_num_list = [] 

阅读延展

1
3