Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
字体反爬怎么激活成功教程_word文字重叠错乱,希望能够帮助你!!!。
woff文件一般使用fontcreator查看
链接: https://dqunying2.jb51.net//tools/fontcreator_jb51.rar.
需要先将woff
文件转化为xml
格式
from fontTools.ttLib import TTFont import xmltodict font = TTFont('7.woff') # 保存为xml文件 font.saveXML('7.xml') # 读取xml文件内容 with open('7.xml', 'r') as f: xmldict = xmltodict.parse(f.read()) for i in xmldict['ttFont']['glyf']['TTGlyph'][1:]: # 此处i为OrderedDict 需要转换才能进行下一步取值 # ww = json.loads(json.dumps(i)) # for i in ww: # print(i) print(i)
xml的字体文件格式一览,其中主要看GlyphOrder,cmap,glyf
其中GlyphOrder
可映射文件id从fontcreator软件中获取该字,如下unie842为6,unie269为9
,以此类推
cmap
则表明了映射关系,此处多半是网页呈现的代码
glyf
是对字体的图像描写笔画显示
<TTGlyph name="unia863" xMin="0" yMin="-164" xMax="996" yMax="804"> <contour> #点 x.y on 0表示为弧形区域 1表示矩形 <pt x="22" y="-72" on="1"/> <pt x="96" y="59" on="0"/> <pt x="102" y="322" on="1"/>
对于静态文件只需要下载到本地,获取字符集的列表顺序,再根据xml中的映射关系即可解决。
对于动态文件有2种情况一种是uniname变化,字符集不变,这种情况需要每次请求都下载一次woff文件。
第二种情况是2者都会变化,字符集顺序也会变化,这种情况博主的处理方式为,对`glyf`中的字符笔划x,y的值,on的排列等数据进行操作,拿到该字符唯一的特征,再去映射文件字体即可该方法适用于少量的字体反爬。
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章