副问题[/!--empirenews.page--]
12月已开始了,离2018年的竣事也就半个多月的时刻了,还记得年头立下的flag吗?
完成了几多?信托许多人和我一样,抱头痛哭...
本次操作猫眼影戏,实现对2018年的影戏大数据举办说明。

一、网页说明
01 标签

通过点击猫眼影戏已经归类好的标签,获得网址信息。
02 索引页

打开开拓职员器材,获取索引页里影戏的链接以及评分信息。
索引页一共有30多页,可是有影戏评分的只有10页。
本次只对有影戏评分的数据举办获取。
03 详情页

对详情页的信息举办获取。
首要是名称,范例,国度,时长,上映时刻,评分,评分人数,累计票房。
二、反爬破解

通过开拓职员器材发明,猫眼针对评分,评分人数,累计票房的数据,施加了笔墨反爬。

通过查察网页源码,发明只要革新页面,三处笔墨编码就会改变,无法直接匹配信息。
以是必要下载笔墨文件,对其举办双匹配。
- 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: http://fontstore.baidu.com/static/editor/index.html
可以获得下面数字部门信息(上下两块)。
在Pycharm中查察xml名目文件(阁下两块),你就会发明有对应信息。

通过上图你就可以将数字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 = []
- base_num_list = ['.', '3', '0', '8', '9', '4', '1', '5', '2', '7', '6']
- base_unicode_list = ['x', 'uniF561', 'uniE6E1', 'uniF125', 'uniF83F', 'uniE9E2', 'uniEEA6', 'uniEEC2', 'uniED38', 'uniE538', 'uniF8E7']
- for i in range(1, 12):
- maoyan_glyph = maoyanFont['glyf'][maoyan_unicode_list[i]]
- for j in range(11):
- base_glyph = base_font['glyf'][base_unicode_list[j]]
- if maoyan_glyph == base_glyph:
- maoyan_num_list.append(base_num_list[j])
- break
- maoyan_unicode_list[1] = 'uni0078'
- utf8List = [eval(r"'u" + uni[3:] + "'").encode("utf-8") for uni in maoyan_unicode_list[1:]]
- utf8last = []
- for i in range(len(utf8List)):
- utf8List[i] = str(utf8List[i], encoding='utf-8')
- utf8last.append(utf8List[i])
- return (maoyan_num_list ,utf8last)
三、数据获取
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|