web爬虫-自定义字体反爬终极解决方案

简介

之前做过汽车之家的字体反爬并可以以100%的成功率稳定解析,但是手动去生成一个已知的字体json是一个极其繁琐且无聊的过程,这导致了以后如果新增带有字体反爬的网站或者目标网站改版,则又要手动去生成,过程及其痛苦,后来有小伙伴问我,能不能省去这个手动的过程,让它全自动,当时受知识面所限,我回答不可能。这几天又想起这个问题了,就想尝试一下能否全自动,经过周末两天的半打鱼半晒网,终于实现了自动化,但目前可供测试的网站并不多,只试了猫眼、汽车之家、大众点评这三个网站,并且是可行的,如果有其他的,可以私聊我进行尝试。

接下来将介绍这个小项目的思路。

第一步、如何从一个未知的字体文件中抽取字体和其对应的标号?

web爬虫-自定义字体反爬终极解决方案_第1张图片

                                                                    图1:大众点评部分字体

不经手动填写的话,我们能获得的好像只有坐标信息,字体文件其实类似于一张张绘制好的图片,通过编号进行调用然后展示这张图片,要想实现自动化,图像识别必不可少(目前我是这样认为的),我们要是能做到将一个个字体全部导出为图片然后进行文字识别岂不是就搞定了?

对,将字体导出为图片进行图像识别,就完成了第一步。

web爬虫-自定义字体反爬终极解决方案_第2张图片 图片导出结果

生成图片的时候对标号进行拍好序列,以便后面与特征进行配对。

第二步、根据特征值和字体实体生成用于后续对比的json

        根据一些固定值和基本不变的值,生成一个用于后续字体对比的json,如下。

web爬虫-自定义字体反爬终极解决方案_第3张图片

第三步、拿未知字体与已知json对比

运行实例

猫眼:

web爬虫-自定义字体反爬终极解决方案_第4张图片

汽车之家:

web爬虫-自定义字体反爬终极解决方案_第5张图片

大众点评:

web爬虫-自定义字体反爬终极解决方案_第6张图片

新增功能:

  • 对于识别失败的字体,将挨个展示给用户,以用户输入为准

你可能感兴趣的:(爬虫)