过完年,好了,咱们接着更新反反爬虫系列
至于之前有朋友表示出一下1688呀,x宝的反反爬虫
说实在的,阿里系的反爬虫很厉害,我自愧不能搞定。
比如x宝的登录,用了selenium + chrome的朋友都会遇到滑条拖动验证失败的情况
这个就是过不了的,首先会去检查你的浏览器DOM的window.webdriver 来判断是否是人还是自动化工具
其次还会检测浏览器指纹看你的特征值,然后就是逻辑回归的算法来判断是不是爬虫。
暂时先提这么多
依旧是回顾之前的系列:不吃夹生饭:反反爬虫系列(一)zhuanlan.zhihu.com不吃夹生饭:反反爬虫系列(二)zhuanlan.zhihu.com不吃夹生饭:反反爬虫系列(三)zhuanlan.zhihu.com
好了,今天我们要研究的是 x车之家的字体反爬虫
难度: 中等偏上
反爬策略: html页面通过css替换,::before这个东东,拿到的html是源码,前端渲染出来的才是所见的。因此在一些关键部分字体拿到的是一个code,起到迷惑的意义。
我举个栗子吧: 小明有头驴。
那到底是几头呢,这个反爬虫的意义就在这。
反反爬策略:解析出每个code对于的字就ok了
好了,入正题。
需求就定在我们需要去拿汽车的参数配置信息
进入页面,长酱色的
页面上看着没问题对吧
然后看html源码
并没有结构化的东西,同时发现数据放在js里,长酱色的
注意我标的红框里的东西
所以啊,就算突破一些常规的反爬虫手段,拿到html后,我指的是批量拿到所有车型的配置html后。
解析了js,拿到配置信息。
但是关键地方的字体被替换,那搞个毛啊。
所以,接下来我们需要把这个替换再换回来。
因为常规的反爬虫都是前端反爬虫,等于读书时候的习题册,答案就在习题册后面。
这时候我就又回到html里去找答案,
这仅仅是 二十多行,就看到这段,看里面觉得有猫腻对吧,
我们把这段js拿出来,格式化一下,就长这样的
接下来就是耐心的找猫腻咯
完了后发现这样一段函数
index和item有点刺眼,根据职业习惯,这个应该就是对于的字体
咱们再去搜搜 InsertRule这个关键词,然后找到这个
添加一句 console.log($index$, $temp$)
然后把整段js拿到chrome里,执行一下看看
这不就出来了么
然后从解析出来的数据里,按照index替换就行了。
大体上的思路就是这样
代码我就不提供了,偷个懒
这里笔者需要提醒的就是:
x车之家,加载的字体是动态的,同时针对具体的车系加载的字体又是固定的。
因此在采集的时候要注意不同车系加载的不同字体
最后,个人感觉,在字体反爬虫上,x车之家算是教科书级别的。