Python字体反爬实战案例分享
作者:梦想橡皮擦 时间:2021-06-18 01:00:46
实战场景
本篇博客学习字体反爬,涉及的站点是实习 x,目标站点地址直接百度搜索即可。
可以看到右侧源码中出现了很多“乱码”,这其中就包含了关键信息。
接下来按照常规的套路,在开发者工具中检索字体相关信息,但是筛选之后,并没有得到反爬的字体,只有一个 file?
有些许的可能性。
这里就是一种新鲜的场景了,如果判断不准,那只能用字体样式和字体标签名进行判断了。
在网页源码中检索 @font-face
和 myFont
,得到下图内容,这里发现 file
字体又出现了,看来解决问题的关键已经出现了。
下载文件名之后发现无后缀名,我们可以补上一个 .ttf
的后缀,接下来拖拽到 FontCreator 中,然后进行查阅。
二次刷新页面之后,再次获取一个 file
文件,查看二者是否有编码变化问题。
结论:每次请求字体文件,得到的响应无变化。
既然没有变化,后续的字体反爬实战编码就变的简单了。
实战编码
解析字体文件,获取编码与字符。
from fontTools.ttLib import TTFont
font1 = TTFont('./fonts/file.ttf')
keys,values = [],[]
for k, v in font1.getBestCmap().items():
print(k,v)
得到的结果如下所示:
2 extra bytes in post.stringData array
120 x
57345 uni4E00
57360 uni77
57403 uni56
……
然后我们查看一下实习僧站点返回的数据。
-
这其中又涉及到了编码的转换。
我们拿到一段带编码的文字,如下所示:
销售实习
接下来查看一下页面呈现的文字
SaaS软件销售实习生
其中 
对应的是 S
字符,再看一下该字符在字体文件中的编码,如下所示。
但是从刚才的结果中,并未得到 edb3
相关值,但是把十进制的编码进行转换之后,得到下述结果。
来源:https://blog.51cto.com/cnca/5349671
标签:Python,字体,反爬
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
在服务端合并和压缩JavaScript和CSS文件
2010-07-15 12:48:00
![](https://img.aspxhome.com/file/UploadPic/20107/15/cdn-and-minify-50s.png)
jsp下页面跳转的几种方法小结
2023-07-22 00:38:07
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2023-10-14 02:31:42
python如何提取xml指定内容
2021-07-02 01:21:10
![](https://img.aspxhome.com/file/2023/9/68899_0s.png)
MySQL索引类型一览 让MySQL高效运行起来
2010-04-22 16:52:00
python3实现带多张图片、附件的邮件发送
2023-05-11 06:51:10
PHP设计模式之模板方法模式Template Method Pattern详解
2023-05-25 00:24:26
python 变量初始化空列表的例子
2022-09-03 08:14:42
python字符串连接的N种方式总结
2023-10-12 08:47:44
基于JavaScript实现鼠标向下滑动加载div的代码
2023-08-11 16:19:22
Python json模块与jsonpath模块区别详解
2023-09-17 18:07:26
ASP实现SQL语句日期格式的加减运算
2008-11-07 15:13:00
ASP编程入门进阶(十三):AdRotator & Content Rotator
2008-09-24 17:47:00
HTML5 Canvas 起步(2) - 路径
2009-05-12 12:06:00
![](https://img.aspxhome.com/file/UploadPic/20095/12/2-use-beginpath-60s.jpg)
兼容所有浏览器的CSS3圆角[译]
2009-10-13 21:11:00
![](https://img.aspxhome.com/file/UploadPic/200910/13/curvy1-37s.png)
浅析网页色彩应用
2009-12-21 16:17:00
![](https://img.aspxhome.com/file/UploadPic/20101/11/web-color-01-87s.jpg)
python数字图像处理之对比度与亮度调整示例
2021-02-13 19:33:19
![](https://img.aspxhome.com/file/2023/4/70764_0s.png)
python处理json字符串(使用json.loads而不是eval())
2023-06-13 11:50:39
![](https://img.aspxhome.com/file/2023/4/70794_0s.png)
用Python创建简易网站图文教程
2023-03-09 20:37:57
![](https://img.aspxhome.com/file/2023/0/63980_0s.png)
举例详解Python中smtplib模块处理电子邮件的使用
2023-10-08 04:46:14