当前位置 : 主页 > 编程语言 > python >

【字体反爬】的起点,月票数解析,一个小小的Python案例

来源:互联网 收集:自由互联 发布时间:2022-06-15
@[toc] ⛳️ 实战起点 本次要采集的目标站点为 https://Python脱敏处理.qidian.Python脱敏处理/rank/yuepiao/。 月票榜单的数字为特殊字体,并且 class 看起来为一个加密字符串。 测试之后发现,字

@[toc]

⛳️ 实战起点

本次要采集的目标站点为 https://Python脱敏处理.qidian.Python脱敏处理/rank/yuepiao/。在这里插入图片描述月票榜单的数字为特殊字体,并且 class 看起来为一个加密字符串。

测试之后发现,字体样式恰好是字体文件名称,并且每次刷新都会发生变化。在这里插入图片描述下载字体矢量图之后,查看编码发现只是简单的中英文对照关系。在这里插入图片描述

字体矢量图解析就非常简单了,下面我们优先获取字体文件。

⛳️ 实战编码

接下来获取网页源码,然后尝试提取其中的字体文件。

import re import requests base_url = 'https://www.qidian.com/rank/yuepiao' headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36', 'Host': 'www.qidian.com' } response = requests.get(base_url, headers=headers) # print(response.text) font_url = re.findall(r"\); src: url\('(.*?)'\) format\('woff'\)", response.text)[0] print(font_url)

得到的字体文件如下所示。

https://qidian.gtimg.com/qd_anti_spider/wWZgjsqu.woff

其实到这里本案例已经结束了,当你获取到字体文件只有,可以对其进行存储与解析。

from fontTools.ttLib import TTFont import io res_font = requests.get(font_url) font = TTFont(io.BytesIO(res_font.content)) print(font) # 编码对应关系 font_cmap = font.getBestCmap() print(font_cmap)

上一篇:爬虫学习(10):python正则表达式大全
下一篇:没有了
网友评论