雁过留痕 小小的天空,也有大大的梦想

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中提取对应的值。

  1. from fontTools.ttLib import TTFont
  2. # 这个是与上面的字体文件相对应的
  3. number_dict = {
  4. "period": ".",
  5. "zero": "0",
  6. "one": "1",
  7. "two": "2",
  8. "three": "3",
  9. "four": "4",
  10. "five": "5",
  11. "six": "6",
  12. "seven": "7",
  13. "eight": "8",
  14. "nine": "9"
  15. }
  16. # 将 woff 转化为 xml
  17. 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
  18. with open('qidian.woff', 'wb') as f:
  19. f.write(font_content)
  20. font1 = TTFont('qidian.woff')
  21. font1.saveXML('qidian.xml')

2018年7月22日 | 发布:admin | 分类:学习笔记 | 评论:0

发表留言: