这是在请求起点中文网的小说字数时遇到的问题.
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')