字体反爬虫的原理和破解方法

[[429151]]

大家好,我是志斌~

之前给大家介绍了一种SVG映射反爬虫,今天在给大家介绍另外一种通过映射关系来进行反爬虫的方式。

不知道大家有没有遇到过这种情况,在写爬虫程序之前我们需要对目标数据进行观察,但是在我们观察时发现目标数据在网页中是以这种奇怪的方式出现的。

这种反爬虫就是字体反爬虫,今天志斌就来跟大家分享一下如何绕过这类反爬虫。

一、原理

在之前,网站开发者在设计网页时只能使用公用的字体来展示网页中的数据。

但是,随着CSS样式的深入开发,网站开发者可以将自己的字体放到服务器中。当用户在访问Web界面时,对应的字体就会被浏览器自动下载到用户的计算机中,然后通过CSS样式进行调用。

之后,通过一种映射关系,使得网页中的源数据变为真正的数据进行展示。

通过这种方式,使得这样就使得网站开发者进行网页设计时,只需要使用特殊字符进行占位即可,不需要将真正的数据放到页面中去。这样,爬虫程序如果不知道这种映射关系的话,就无法从字体中获取正确的数据,从而实现反爬虫。

二、破解

破解这类字体反爬虫有以下几步。

1.下载字体woff文件

从上面我们知道,字体是在服务器上进行存储,并通过浏览器下载到我们的电脑上的,那么我们就可以在网站上找到加载的字体文件,下载下来。

下载下来之后,打开它进行观察,这里给大家分享一个再点字体编译器网站,使用它可以很方便打开woff文件。网址:http://font.qqe2.com/index-en.html。

打开字体文件之后,我们发现,每个数字都对应一个字符串,如7对应的是$E9C7。

2.寻找映射关系

通过对源网页中的占位数据和字体进行比对,我们发现将源数据中的&#x替换成$,然后将字符串首字母大写,就变成了字体对应的字符串了。

3.构建映射算法

在上面我们已经找到了字体之间映射关系,那么我们现在就可以开始用Python来构建映射算法,从而使得爬虫可以获取一个正确的数据。

构建代码如下:

  1. data = { 
  2.    '&#xe9c7' : 7, 
  3.    '&#xf57b' : 1, 
  4.    '&#xe7df' : 2, 
  5.    '&#xe339' : 6, 
  6.    '&#xe624' : 9, 
  7.    '&#xea16' : 5, 
  8.    '&#xf19a' : 3, 
  9.    '&#xee76' : 0, 
  10.    '&#xf593' : 4, 
  11.    '&#xefd4' : 8, 

之后,我们即可对网页进行爬取,然后将对应的源数据与data进行比如,从而获得正确数据。

三、小结

1. 本文详细介绍了如何破解字体反爬虫,由于这种反爬虫是使用CSS进行加载和映射的,所以即使使用一些自动化软件或者渲染工具也无法获得真正的数据。

2. 这类反爬虫的破解只需要将woff文件中的字体与页面数据之间的对应关系找到,构建好即可。

3. 找到woff文件进行下载是关键。

4. 有兴趣的读者可以找志斌要一下网站自己尝试一下。 

5. 本文仅供学习参考,不做它用。

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/145964.html<

(0)
管理的头像管理
上一篇2025-03-10 21:08
下一篇 2025-03-10 21:09

相关推荐

  • 站群服务器一个IP放几个网站合适?,怎么选

    站群服务器一个IP放3-5个网站是大多数情况下的最佳平衡点,但具体数量需根据网站权重、内容质量及IP资源成本灵活调整,这个结论基于搜索引擎对同IP站点的关联判定逻辑,以及站群运营的长期实践,如果你刚接触站群,可能会纠结于IP分配,但核心原则是:不要让搜索引擎轻易识别出这些网站属于同一实体,站群IP分配的底层逻辑……

    2026-07-26
    0
  • DDoS攻击和CC攻击有什么区别,怎么防御?

    DDoS攻击和CC攻击最核心的区别在于攻击目标不同:DDoS攻击主要消耗网络带宽和基础设施资源,而CC攻击专门针对应用层逻辑,耗尽服务器CPU和数据库连接数,两者从原理到防御手段完全不同,攻防视角下的本质差异攻击目标:一个砸门,一个撬锁DDoS攻击(分布式拒绝服务)瞄准的是网络层和传输层,通过大量伪造数据包或畸……

    2026-07-26
    0
  • 服务器UEFI和Legacy启动模式有什么区别,哪个好

    UEFI(统一可扩展固件接口)是取代传统Legacy BIOS的现代启动标准,在服务器领域,UEFI凭借更快的启动速度、超过2TB的磁盘支持、安全启动(Secure Boot)以及丰富的预启动网络功能,成为主流服务器的默认配置;而Legacy BIOS作为兼容性模式,仅在需要运行老旧操作系统或特定硬件时保留,U……

    2026-07-26
    0
  • 站群服务器为什么比普通服务器贵,哪家性价比高?

    站群服务器之所以比普通服务器贵,核心在于其为了支撑大量独立站点同时稳定运行,在硬件隔离、独立IP资源池、高防御网络架构以及合规运维上投入了普通服务器数倍的成本,这些硬性支出直接反映在了最终定价上,硬件配置的“冗余”设计决定成本基线站群服务器与普通服务器最直观的差异体现在硬件层面,普通服务器往往面向单一应用或少量……

    2026-07-26
    0
  • 企业级服务器和普通服务器区别在哪?,怎么选性价比高

    前者为关键业务连续性与高并发场景设计,具备硬件冗余、故障自愈和全生命周期管理能力;后者面向基础应用,追求性价比与部署便捷性,硬件架构的底层差异企业级服务器从硬件选型就与普通服务器划清界限,CPU通常支持多路互联,内存频率更高且支持ECC纠错与RAS特性,存储控制器配备缓存保护与RAID加速,普通服务器往往采用单……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注