这篇文章主要介绍“python字体加密怎么理解”,在日常操作中,相信很多人在python字体加密怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python字体加密怎么理解”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
字体加密初认识
在字体加密的网站中用户也是无法直接进行复制网页内容的。
目前有使用字体加密的网站大概有下面这些:
58同城,起点,猫眼,大众点评,启信宝,天眼查,实习僧,汽车之家
既然这么多的网站都采用了字体加密,那么它一定是一个有效的反爬手段,作为爬虫工程师我们应该如何应对呢?
首先我们应该先了解一下什么是字体加密。
什么是字体加密?
网页字体是一个字形集合,而每个字形是描述字母或符号的矢量形状。
因此,特定字体文件的大小由两个简单变量决定:每个字形矢量路径的复杂程度和特定字体中字形的数量。
通俗一点,同一内容的网页字体每个字形应该都是大同小异的,我们可以通过比对字体文件的字形来确认映射的内容。
关于字体加密的描述文章实在太多了,个人建议还是看看 Google 官方关于网页字体的文章。
接着是关于网页字体加密映射的原理图,下图来自谷雨解字:
在爬虫爬取页面的时候,页面中的代码是阴书,但是在人眼看到的是原文,这样的映射关系让爬虫无法顺利爬取到网站内容。
如何处理字体加密?
通过上面的字体加密原理图,我们大概了解到字体加密的原理。
我推荐没有搞过字体加密的朋友找个比较简单的网站练手,网上写的比较多的例子是猫眼的专业版。
猫眼的字体解密文章非常多,建议没有接触过得朋友可以先自己动手试试,咸鱼也会在之后更新字体解密系列的文章。
下面是字体解密的大致流程:
-
先找到字体文件的位置,查看源码大概就是
xxx.tff
这样的文件 -
重复上面那个操作,将两个字体文件保存下来
-
用上面的软件或者网址打开,并且通过 Python fontTools 将 tff 文件解析为 xml 文件
-
根据字体文件解析出来的 xml 文件与类似上面的字体界面找出相同内容的映射规律(重点)
-
在 Python 代码中把找出的规律实现出来,让你的代码能够通过这个规律还原源代码与展示内容的映射(这句话比较抽象,可以之后结合代码文章再读一遍)
推荐使用 FontCreator
以及百度字体。
打开后显示的样子与下图类似。
到此,关于“python字体加密怎么理解”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/219953.html