字体反爬一眼就懂

看了许多博主的字体反爬教程 发现都是用x,y轴什么什么来做的,再转到xml文件里面去看 然后给大家分享一个稍微稍微简单的方法
原理在第二步

我们以大众点评网站为例
一 找到正确的字体文件 将其打印成一个列表**
如下图 两个woff文件即两个字体文件
为什么是找到找到正确的字体文件,博主在几个月前爬过这个网站,有的时候会出现三个以上的woff文件,因为它将数字和汉字的反爬字体文件分成了两个,所以需要我们自己去手动找到哪一个文件是汉字的,哪一个是数字的。接着双击woff文件即可下载,在用我们的老搭档fontcreateor打开

在这里插入图片描述
在这里插入图片描述
那我们又怎么样才能将它变成一个列表呢 方法有很多 我用的是qq的长截图,在用qq提取图片文字 现在好像不能直接复制了,需要下载之后打开里面的result文件才能拿到提取到的汉字 接着需要大家将一些不需要的字符删去 最后添加引号即可变成一个列表
在这里插入图片描述

在这里插入图片描述
添加引号的方法
ctrl+r 正则匹配
我的方法是新建一个python文件 按ctrl+r 输入下图的匹配方式 再replace all 自己在将其给一个名字加个括号即可 取名font
在这里插入图片描述

二 打印字体文件**(原理)**
我们将其刚刚下载的字体文件放到一个新建文件夹下 并需要用到以下方法 print(font.getReverseGlyphMap())

打印出的结果就是一个列表 key是字体对应的unicode码 而value则是一个数字 这个数字是什么 联想我们最早那么麻烦去做的一个字体列表 所以这个数字就是字体列表的下标 我们只需要将网页源码的**&#xeccb的这种形式转换成unieccb**这种形式 通过相关字典操作的用key值返回value值即字体文件的下标 通过打印字题文件下标 得到汉字 我举一个李子

这里我们仍需要将下面打印出来的列表拿出来 取名list
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

所以我猜测这个&#xeccb是**“家”**字 我们通过fontcreator验证

在这里插入图片描述
我们将鼠标放在家字上面 因为不能截图 但是我们发现会弹出ubieccb 所以我们的猜想正确 而这也是我们确定哪一个字体文件是汉字的还是数字的 如果没有对应上 说明一定在另外的字体文件里面

我们已经拿到key值 所以我们需要打印出value验证我们的猜想

这里需要注意到是字体列表font坐最前面一定是有两个空值,一定要和fontcreator显示一样在这里插入图片描述在这里插入图片描述
在这里 我们得到证实

对比其他方法来说 因为本人是没看懂那些x,y的方法的 所以自己探索出这个方法

注意
1 字体文件隔一段时间就会更新 所以要及时操作
2 我碰到的是数字和汉字分隔开的 所以以上的两个列表 对数字来说也要重新做一份 但是数字只有几个 所以在无论是在建font列表还是list的时候 只需要拿前面十来个就行 因为后面的是汉字的 我么不需要

最后 如果有朋友能看到这里 麻烦点个赞哈哈哈哈哈、
最后 欢迎大家补充 提出建议

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值