相关文章推荐
唠叨的桔子  ·  加查挑战穿浴衣_浴衣里面要穿什么_浴衣是什么 ...·  1 年前    · 
会开车的香菜  ·  杂谈| ...·  1 年前    · 
傲视众生的凉面  ·  男士斜挎包怎么背好看_COACH ...·  1 年前    · 
迷茫的小笼包  ·  《小手牵小狗》,虐哭单身狗-品玩·  1 年前    · 
奔放的蜡烛  ·  《无敌破坏王2》继续领跑北美周末票房榜-新华网·  1 年前    · 
小百科  ›  我去!爬虫遇到字体反爬,哭了开发者社区
源码
慷慨大方的吐司
1 年前
作者头像
Python研究者
0 篇文章

我去!爬虫遇到字体反爬,哭了

原创
前往专栏
腾讯云
备案 控制台
开发者社区
学习
实践
活动
专区
工具
TVP
文章/答案/技术大牛
写文章
社区首页 > 专栏 > Python研究者 > 正文

我去!爬虫遇到字体反爬,哭了

原创
修改 于 2021-06-07 17:51:27
640 0
举报

今天准备爬取某某点评店铺信息时,遇到了『 字体 』反爬。比如这样的:

还有这样的:

可以看到这些字体已经被 加密 ( 反爬 )

竟然遇到这种情况,那辰哥就带大家如何去解决这类反爬( 字体反爬类 )

01 网页分析

在开始分析反爬之前,先简单的介绍一下背景(爬取的网页)

辰哥爬取的某某点评的店铺信息。一开始查看网页源码是这样的

这种什么也看不到,咱们换另一种方式:通过程序直接把整个网页源代码保存下来

获取到的网页源码如下:

比如这里看到评论数(4位数)都有对应着一个编号( 相同的数字编号相同 ),应该是 对应着网站的字体库 。

下一步,我们需要找到这个网站的字体库。

02 获取字体库

这里的字体库建议在目标网站里面去获取,因为不同的网站的字体库是不一样,导致解码还原的字体也会不一样。

1、抓包获取字体库

在浏览器network里面可以看到一共有三种字体库。( 三种字体库各有不同的妙用,后面会有解释 )

把字体库链接复制在浏览器里面打开,就可以把字体库下载到本地。

2、查看字体库

这里使用FontCreator的工具查看字体库。

下载地址:

https://www.high-logic.com/font-editor/fontcreator/download

这里需要注册,邮箱验证才能下载,不过辰哥已经下载了,可以在公众号回复: FC ,获取安装包。

安装之后,把刚刚下载的字体库在FontCreator中打开

可以看到字体的 内容 以及对应的 编号 。

比如 数字7对应F399 、 数字8对应F572 , 咱们在原网页和源码对比,是否如此???

可以看到,真是一模一样对应着解码就可以还原字体。

3、为什么会有三个字体库

在查看加密字体的CSS样式时,方式有css内容是这样的

字体库1 :d35c3812.woff 对应解码class为 shopNum

字体库2 :084c9fff.woff 对应解码class为 reviewTag和address

字体库3 :73f5e6f3.woff  对应解码class为 tagName

也就是说,字体所属的不同class标签,对应的解密字体库是不一样的,辰哥这里不得不说一句: 太鸡贼了

咱们这里获取的评论数,clas为shopNum,需要用到字体库 d35c3812.woff

03 代码实现解密

1、加载字体库

既然我们已经知道了字体反爬的原理,那么我们就可以开始编程实现解密还原。

加载字体库的Python库包是:fontTools ,安装命令如下:

pip install fontTools

将字体库的内容对应关系保存为xml格式

code和name是一一对应关系

可以看到网页源码中的编号后四位对应着字体库的编号。

因此我们可以建立应该字体对应集合

建立好映射关系好,到网页源码中去进行替换

这样我们就成功的将字体反爬处理完毕。后面提取内容大家基本都没问题。

2、完整代码

输出结果:

可以看到加密的数字全部都还原了。

04 小结

辰哥在本文中主要讲解了如此处理字体反爬问题,并以某某点评为例去实战演示分析。辰哥在文中处理的数字类型,大家可以尝试去试试中文如何解决。

为了大家方便学习,辰哥已经把本文的完整源码上传,需要的在公众后台回复: 字体反爬

不明白的地方可以在 下方留言 ,一起交流。

点击展开阅读全文

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

python
登录 后参与评论
关于作者
0
文章
0
累计阅读量
0
获赞
前往专栏
关注 - 腾讯云 开发者 公众号
将获得
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
扫码关注腾讯云开发者
NEW
切换旧版
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档
 
推荐文章
唠叨的桔子  ·  加查挑战穿浴衣_浴衣里面要穿什么_浴衣是什么时候穿的-抖音
1 年前
会开车的香菜  ·  杂谈| 街头巷尾的公共厕所,是一座城市胸怀的缩影- 知乎
1 年前
傲视众生的凉面  ·  男士斜挎包怎么背好看_COACH 蔻驰男士单肩斜挎包开箱_什么值得买
1 年前
迷茫的小笼包  ·  《小手牵小狗》,虐哭单身狗-品玩
1 年前
奔放的蜡烛  ·  《无敌破坏王2》继续领跑北美周末票房榜-新华网
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号