【原创】【Python】一个有意思的自定义字体
### 目标:易车论坛#### 随便找个url,如https://baa.yiche.com/aodia4l/thread-24943442.html
#### 进入后发现页面是这样的
#### 然后打开response,看到的是这样的
#### 我们发现字体加密了。
#### 于是找了下字体文件,发现是一个静态的url,而且内容没有任何变化,url是:https://baa.yiche.com/yc-pc/comment/font/yc-ft.woff
#### 然后我们对比看下:
#### 这里一共对400多个汉字进行了自定义
#### 通过fonttool库,我们对字体进行转换为xml文件,发现name对应的属性值是uniEE86 这样的数据
#### 在这里说下,页面上的和后面的分号是没用的。字体文件中的uni也是没用的。我们通过ee86确定了字是“了”。于是就很容易的确定了映射关系。通过分析,ee86前面加上\u ,即可得到对应的汉字“了”,那么我们就可以通过这个映射关系,对页面上的字体进行替换。
#### 代码:
```python
from fontTools.ttLib import TTFont
word = TTFont('./yc-ft.woff') # 字体文件目录
value_lists = word.getGlyphOrder() # 获取字体文件中value
d = + "'") for i in value_lists]# 拼接成汉字
d1 = ["" + i[-3:].lower() + ";" for i in value_lists] # 处理成网页内容
file_dict = dict(zip(d1, d)) # 建立映射字典
for key in file_dict: # 挨个替换,res就是网页的html源码
res = res.replace(key.lower(), file_dict)
```
#### 总的来说,这个自定义字体还是蛮简单的,而且有意思,如果找对方法,其实破解还是很容易的,找不对的话,就一点点自己写映射关系吧。
### 感谢支持 原页面那张图片没显示出来,在这里补一下。原页面是这样的:
这就是非标准库了吧 最近也碰到类似的,感谢分享思路。一直都是自己慢慢映射 fanvalen 发表于 2021-3-24 11:44
这就是非标准库了吧
这个没法界定,每个网站的自定义字体可能都不一样 我是不会改名的 发表于 2021-3-24 11:50
最近也碰到类似的,感谢分享思路。一直都是自己慢慢映射
这个也只能作为参考,有的自定义字体确实得慢慢写映射 原来如此,总之学习了 需要结合fonttool库等使用感谢楼主提供这个捷径
页:
[1]