【媳妇当车模频道】汽车字体反爬一键解决,之家之家
📢📢📢📢📢📢💗 你正在阅读 【梦想橡皮擦】 的博客👍 阅读完毕,可以点点小手赞一下🌻 发现错误,直接评论区中指正吧📆 橡皮擦的第 <font color=red>664</font> 篇原创博客
⛳️ 汽车 实战场景 之家
本次要采集的案例是字体反爬经典场景,而且是国内较早使用字体反爬的站点,字体反爬的学习可以反复琢磨这个站点。
这一次选择了一个养眼的频道进行采集,测试地址可以打开下述网址。
随机选择一段文字,找到其源码位置,可以看到源码中是无法直接读取到的,呈现的结果如下所示。
由前面的几篇博客铺垫,我们能很快抓取一个字体文件到本地进行分析。
这次的字体包中没有数字,妥妥的都是一些中文字符。
⛳️ 字体加密反爬编码时间
由于通过开发者工具查看字符都是下述符号
,那只能通过 requests
模块进行一下数据的采集,查看代码情况。
运行代码得到下述结果集,其中出现了 unicode 编码就是我们后续解题的关键点了。
上文空缺出来的参数,如果对比查看就能找到规则。
\ude9e
:一;\ued4e
:了;……
这些编码都可以转换为字体文件中的编码,我们尝试读取一下。
如果字体编码顺序一直没有发生变化,那本文已经建立对比字典之后,就解决了,但是之家站点每次刷新,字体文件的索引和顺序都发生了变化。
自然是变化的,那每次刷新页面的时候都 优先获取网页字体文件,然后在获取编码,二者得到之后,可以用 PIL 库将其绘制到一张图片中。
运行代码就会得到下图所示图片,有空白的文字图片,在对接一个简易的 OCR 识别模块,一个小小的动态字体反爬程序就完成了~
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/d74f38b1c7c979f0671b4e7b5】。文章转载请联系作者。
评论