我之前的一篇文章大概讲到过如何批量撸这个网站的数据,先吐槽下南京车300,目前我所在的公司的母公司。进入估价页面,显示浏览器指纹验证,再是拖滑块,然后文字点击。怎么就没有销售出来骂,什么狗屎用户体验。 也对,流量都在app上,pc端就是来肝爬虫的。对于做机器学习要搞OCR文字点击的,可以去采集训练集(斜眼笑) 好了,滑动和文字验证今天咱们不提,就单纯讲讲利用cookie做文章的反爬虫 进入估价页面,长酱色的: 然后咱们看源码,却是长酱色的: 好了,这里我提一下为什么一定要看源码,很多刚出道的爬虫工程师,在进入页面后,习惯性的就是检索元素,然后抓抓包看看api之类的,接着写脚本。 然后一请求,这是怎么回事啊?拿到一段html和原网页不同,里面嵌套一大段JavaScript。说到这里,我们来看看这段js 首先是定义的一个方法 大概就是讲重新构造一个url的参数。重点是下面这段 eval()开头的,我们将eval里的js格式化后,搜索 setParam 大概可以知道,这个大框里就是我们要的东西,setParam就是向url里重新写一个时间戳,然后重点就是 document.cookie = 'spidercooskieXX12=' + t + ';path=/;', 可见,这个要向cookie写入两个东东。一个是 spidercooskieXX12 一个是 spidercodeCI12X3。那么这两个的所对应的 t 和 r是什么 继续回到刚刚的大框里,可以看到
那就简单了, t是一个像时间戳的东东;r呢,输出它就行了呀。然后我们把大框改写一下,加一个console输出r和t 结果呢,会报错。因为纯粹的js环境没有DOM,在这里我们需要在文件里添加 var window = {}; 如果在chrome里调试,就不用管,但是要把
这句删了,不然还没看到输出,页面就刷新了 然后运行 拿到数据。然后,再次请求刚刚的url,同时在cookie加入这俩参数,就可以看到正确的页面了 总结: 今天这个偏简单。但是依照笔者在工作中所遇到的实际情况,采用这样的思路做反爬虫的网站挺多,比如瓜子二手车
另外,咱们拿到数据是一回事,工程上又是一回事,不得不说车300在反爬虫上下了很大的功夫,据说老板也是做爬虫出生的。 嗯,它的app上面,用了签名验证,这个我没逆向过,拿不到如何md5加密的,所以暂时也没思路。 |
|