针对某眼电影加密字体的爬虫
针对某眼电影加密字体的爬虫
- 创作背景
- 问题再现
- 解决办法
- 处理 woff 文件
- 撸代码
- 结尾
创作背景
- 因为临近五一假期,涉及到外出游玩的事儿,本菜鸡就想去看一部好看的电影
- 因为时间有限,只能看一部电影,导致我但迟迟无法决定看哪一部
- 鉴于常在 某眼电影 上买票,所以就想去上边看看电影的数据,更好的比对一下性价比高的电影
- 于是我就重拾手艺,给爷爬!!!
问题再现
- 如图所示
- 本来在页面上显示的是数字
8.3
,可到了源码中就成了加密字符 - 怎么解决呢?这是个好问题
解决办法
- 首先我们得知道这是
用的什么方法
加密的 - 看这里
- 用的是这个
stonefont
字体样式 - 那这个样式到底是个什么样的呢?
- 我们可以通过下图圈圈地方的链接下载下来字体文件
- 也就是这个字体文件
- 这时候小伙伴们可能就会说,有了字体文件那要
怎么用
啊,有了这个文件,不会用也不行 - 通过 这篇文章 我学到了
如何处理 woff 文件
处理 woff 文件
- 因为
python 生态
的强大,有各种各样的库可供我们直接使用,这次我们使用的是fontTools
这个库
- 首先,我们要打开字体文件
from fontTools.ttLib import TTFont
font = TTFont("字体文件.woff")
- 这时候,相同目录下会生成一个
'【文件名】.xml' 文件
(文件名与字体文件名相吻合),也可通过font.saveXML()
指定生成文件的文件名
- 其次,我们要获得
"uni"
字符列表
print(font.getGlyphOrder())
- 再次,获得
十六进制字符
与"uni"
字符的对应关系
print(font['cmap'].getBestCmap())
# cmap 包含了 十六进制字符 与 "uni" 字符的对应关系
- 然后,获得每个
"uni"
字符对应绘制实际数字的各个点的坐标
(以字符"uniF848"
为例)
print(font['glyf']['uniF848'].coordinates)
- 最后,
十六进制
与实际显示的数字
映射关系是
{"0xe137": 8, "0xe343": 1, "0xe5e2": 4, "0xe7a1": 9, "0xe8cd": 5, "0xf19b": 2, "0xf489": 0, "0xf4ef": 6, "0xf848": 3, "0xf88a": 7}
- (因为小生不才,所以我用
turtle
将这些点画出来,然后观看其图像判断实际数字,如果各位有什么更为简便的方法,可以自行尝试)
撸代码
- 那么,万事俱备,只欠代码
- 下面,上代码!!!
from fontTools.ttLib import TTFont
import jsonfont = TTFont("字体文件.woff")
r = {}
# 获得映射关系以后按照顺序设定数字字符串
nc = '6379180425'
# 获得 uni 字符与 数字 的对应关系
for i, c in enumerate(font.getGlyphOrder()[2:]):r[c] = int(nc[i])
# 获得 uni 字符与 十六进制字符串 的对应关系
mapping = font['cmap'].getBestCmap()
result = {}
for k in mapping:try:result[hex(k)] = r[mapping[k]]except:continue
def font_trans(unicode_str):s = ''for i in range(len(unicode_str)):# 是 unicode 字符串就转化为 16 进制,并获得对应的数字try:s += str(result[hex(ord(unicode_str[i]))])# 不是 unicode 字符串就直接添加except:s += unicode_str[i]return s
print(font_trans('\ue137.\uf848'))
- 运行结果如下
- 成功识别!!!
结尾
以上就是我要分享的内容,因为学识尚浅,会有不足,还请各位大佬指正。
有什么问题也可在评论区留言。
针对某眼电影加密字体的爬虫相关推荐
- Python3 爬虫实战 — 58同城武汉出租房【加密字体对抗】
爬取时间:2019-10-21 爬取难度:★★★☆☆☆ 请求链接:https://wh.58.com/chuzu/ 爬取目标:58同城武汉出租房的所有信息 涉及知识:网站加密字体的攻克.请求库 req ...
- web爬虫——某电影网站字体反爬
某电影网站字体反爬 爱好学习及分享,若文章侵权,优先联系本人删帖处理. 几个关键点 base字体文件分析 打开目标网页,找到woff文件链接 下载该woff文件,并在字体编辑器里打开 记录下数字与字符 ...
- 猫眼电影加密数字破解(爬取评分票房票价)
title: 猫眼电影加密数字破解(爬取评分票房票价) toc: true date: 2018-07-01 22:05:27 categories: methods tags: 爬虫 Python ...
- Python 爬虫工程师必看,深入解读字体反爬虫
字体反爬虫开篇概述 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这 ...
- pythonttf字体反爬虫_利用Python采集起点中文网小说,并解决字体反爬的问题
个人比较喜欢看小说,于是乎想利用Python爬取小说网站--起点中文网,在Python编程爬取定位过程中遇到了Python反爬虫,咨询了我旁边的前端大神,说下方法 当前页面接口返回的html源码 当前 ...
- 快手字体反爬虫?请给我10分钟,让我破了他
文章目录 前景摘要 字体反爬虫 突破字体反爬虫思路的探索 最终突破快手反爬虫代码 前景摘要 最近一个朋友问我,字体反爬虫的事,他发给我一个快手网站,我由于比较忙没回他,于是后来他说解决不了就要上scr ...
- 2020-10-17 教你如何破解猫眼(美团)的加密字体stonefont
教你如何破解猫眼(美团)的加密字体stonefont 今天小编试图去爬取猫眼的电影信息,其中包括评分,票房以及有多少人打分等数据,但当我打开查看猫眼网页的源代码时,发现评分和我们在网页上所看到完全不一 ...
- Eclipse详细设置护眼背景色和字体颜色并导出
Eclipse详细设置护眼背景色和字体颜色并导出 Eclipse是一款码农们喜闻乐见的集成开发平台,但是其默认的主题和惨白的背景色实在是太刺激眼球了.下面,将给大家详细介绍如何设置成护眼主题的方法,也 ...
- 深入细枝末节,Python的字体反爬虫到底怎么一回事
内容选自 即将出版 的<Python3 反爬虫原理与绕过实战>,本次公开书稿范围为第 6 章--文本混淆反爬虫.本篇为第 6 章中的第 4 小节,其余小节将 逐步放送 . 字体反爬虫开篇概 ...
最新文章
- 嵌入式CGI开发之旅——CGI环境变量
- AJAX:Getting Started
- 嵌入式Linux学习问题解决记录
- php禁用cookie后session设置方法分析
- oracle的function的语法,Oracle function语法
- 2018.8.26 Spring自学如门
- v380怎么设置云存储_计算机网络云计算技术在应用中的不足及缺陷
- 查看本机的用户 net user
- [转载] Python 字典(Dictionary) get()方法
- 2019工程伦理慕课答案(2019秋)习题及期末答案
- 激光导航AGV最常见的控制算法有哪些?
- ipad pro能用python编程吗_涨知识!iPad还可以运行Python代码
- java小球落体问题_小球落体 -- 算法Java
- 中国最好的职业TOP10
- 磁盘一把锁一个感叹号_电脑C盘出现一把锁和黄色感叹号是什么原因,求大神赐教。...
- 【产品分析】曹操出行
- 【Django】开发日报_3_Day:员工管理系统-创建项目
- 应用GL823芯片自制的读卡器
- 湖北武汉机械员报考铁路机大型机械的管理建筑七大员报考
- 人脸识别实例-颜值打分系统简易版