python字体反爬详解--以某网站字体为例

本文详细介绍了如何应对网站字体反爬,通过解析字体文件、使用fontTools库,构建源字体与替换字体的对应关系,从而解决自定义字体反爬问题。涉及的关键步骤包括找到字体文件、使用在线字体编辑器、解析字体编码和构建替换字典。
摘要由CSDN通过智能技术生成

python字体反爬的一种解决方案

版权声明

请注意:本文章为原创文章,未经本人许可,任何人不得转载和借鉴

问题

目前越来越多的网站升级了应对爬虫的反制手段和措施,网站使用自定义字体或者人们常说的字体反爬,就是其中一种。

描述

这里我们以某网站为例
打开某网站的某一篇政策文章,点击右键、打开检查,或者F12

可以发现,【申报条件】这个板块里面的文字,和源代码里的文字完全不一样;
比如“申请企业应具备以下条件:”,代码里则对应为:“者合册第应具步以督法快:”;
即使你选中文字,再把它们复制出来,文字粘贴后依然为:“者合册第应具步以督法快:”。

解决方案

解决该问题的一种基本思路是:构建源字体与替换字体的对应关系
比如上文提到的句子:
者合册第应具步以督法快替换为申请企业应具备以下条件
其中: > | > | >
假如我们能有这样的一个对应字典

change_font = {
   '者': '申', '合': '请', '册': '企', ... , }

那么我们就能够将网站爬到的所有字体,都替换成正确的文字。

实操过程

1、找到网站的字体文件(ccw.ttf)

F12打开检查后,点击Network,刷新我们刚才访问的政策链接,在众多链接中,找到网站的字体文件链接
在这里插入图片描述
然后在浏览器中打开该链接,并保存到本地

2、使用百度字体编辑器

接下来,我们需要用到百度的在线字体编辑器,网址为:http://fontstore.baidu.com/static/editor/index.html
打开该网站后,点击左上角的打开,然后上传刚才保存的字体文件
在这里插入图片描述
打开后:
在这里插入图片描述
这时候我们就能看到网站字体和编码对应的关系
在这里插入图片描述

3、fontTools库

3.1

接下来我们使用python解析字体的常用库:fontTools

>>>from fontTools.ttLib import TTFont
>>>FONT_FILE = r'C:\Users\17337\Downloads\ccw.ttf'
>>>font_file = TTFont(FONT_FILE)
>>>for k, v in font_file['cmap'].getBestCmap().items():
>>>    print(k, v)
33 ampersand
35 greater
36 c
37 asciitilde
38 H
40 q
41 S
.
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值