woff 这种字体文件怎么抓取数据

这是在请求起点中文网的小说字数时遇到的问题.

pip install fontTools 是用于将woff这种字体文件转化成XML文件

在python的命令窗口运行这句话.

================================================================

首先要先查看这个woff文件内容是什么

需要先下一个工具来查看即下图这个软件(需破解)

安装下图这个,先装英文原版,再打开汉化补丁中的另一个是中文本的,英文和中文想用哪个随自己喜好.

将字体文件的网址在浏览器上下载下来, 在这个文件中打开


===================================================================================================


在python中:

1.每次都刷新字体font-face文件:如https://qidian.gtimg.com/qd_anti_spider/XnXLddDL.woff,

所以每次请求,都需要取截取这个字体文件的url地址(url一直在变)。

2.请求这个地址,将这个字体文件下载到本地,然后将.woff文件转化成.xml文件。

3.去页面的源代码中提取字符串(十进制的编码):

𘜐𘜑𘜑𘜎𘜏𘜏

4.将100112/100113这些十进制编码的数据转化成十六进制的数据;

5.根据这个十六进制的数据从xml文件中找到对应的map对象,提取map的name属性,然后再根据name属性的值,从number_dict中提取对应的值。

from fontTools.ttLib import TTFont
# 这个是与上面的字体文件相对应的
number_dict = {
    "period": ".",
    "zero": "0",
    "one": "1",
    "two": "2",
    "three": "3",
    "four": "4",
    "five": "5",
    "six": "6",
    "seven": "7",
    "eight": "8",
    "nine": "9"
}
# 将 woff 转化为 xml
font_content = requests.get(font_url, headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0'}).content

with open('qidian.woff', 'wb') as f:
    f.write(font_content)

font1 = TTFont('qidian.woff')
font1.saveXML('qidian.xml')

 
 


猜你喜欢

转载自blog.csdn.net/qq_42336573/article/details/80698580