抖音字体反爬

什么是字体反爬?

所谓的字体反爬就是网站一些关键字替换成自己设计的字体,这样用浏览器访问网站的时候会加载这套字体,因此在浏览器中显示是正常的字体;而在源码中这些关键字是乱码的,根本无法识别,采集下来是无用的信息

使用字体反爬的例子:抖音、大众点评、58等,如下是抖音的

解决字体反爬,以抖音为例

步骤:

1 提取抖音个人主页链接

个人主页—>右上角—>分享—>复制链接,在浏览器打开

示例:
https://www.iesdouyin.com/share/user/76725372134

提取一小段源代码:

<span class="num">    
<i class="icon iconfont follow-num"> &#xe611; </i>
<i class="icon iconfont follow-num"> &#xe60c; </i>
<i class="icon iconfont follow-num"> &#xe60d; </i>
<i class="icon iconfont follow-num"> &#xe60e; </i>.
<i class="icon iconfont follow-num"> &#xe613; </i>w 
</span>
<span class="text">粉丝</span>


2 找出字体

既然网站加载了字体,那么我们可以通过抓包找出它


将这个字体改名:dy.woff

3 用字体软件FontCreator打开这个字体文件

下载FontCreator,然后打开字体,或者使用百度在线字体编辑器也可以

百度字体编辑器:http://fontstore.baidu.com/static/editor/

如下:看看这个字体是如何映射的?


比如 显示数字3,映射关系 3–>num_2—>$E604或$E611或$E61A—>&#xe604;或&#xe611;或&#xe61a;


4 解决方法:

  1. 笨办法:手动用字典多对一,然后替换掉,这适合比较少的字体

  2. 用Python工具 fontTools 来映射 ,用pip安装

这个工具可以把字体文件转换成xml文件,这样就可以看到映射关系,如下:

from fontTools.ttLib import TTFont

font = TTFont('dy.woff')
font.saveXML('dy.xml')

with open('dy.xml', 'r') as f:
    reader = f.read()

print(reader)

提取xml文件中的cmap字段,cmap是映射表,如下:

<cmap>
    <tableVersion version="0"/>
    <cmap_format_4 platformID="0" platEncID="3" language="0">
      <map code="0x78" name="x"/><!-- LATIN SMALL LETTER X -->
      <map code="0xe602" name="num_"/><!-- ???? -->
      <map code="0xe603" name="num_1"/><!-- ???? -->
      <map code="0xe604" name="num_2"/><!-- ???? <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值