小菜鸟与爬虫
2016-06-27 16:00 农鲤 阅读(117) 评论(0) 收藏 举报前几日用爬虫进行扒取某网站信息时,碰到了些许反爬虫措施,让我颇费了一番功夫。
反爬措施一:应用https协议而非http协议。这个对于大多数熟悉爬虫的人来说根本不算反爬虫措施吧。但对于我这种小菜鸟而言,还是经过百度以后才知道的。要让爬虫程序通过https协议,其实只要跳过ssl主机验证就行了,在php中是这么实现的:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
将后面两个参数值设为false即可。
反爬措施二:在页面上设置了一个ajax,进行ajax请求的时候需要页面中的某些数据进行后台验证。这个的话针对于单个页面来说其实很简单。只要查询到进行ajax请求时的头部信息,将有用的信息都放在header中,然后进行提交。如果分不清楚什么数据有用什么数据没用,那就把所有的数据都模拟下来进行提交。
反爬措施三:对大部分关键js代码进行了加密。这个的话,小菜鸟不好说通用方法。因为加密方式的不同,解密方式也不同,得靠大家平时积累。
反爬措施四:小菜鸟在进行ajax请求的时候,返回的数据是加密的。对于有经验的程序员来说,知道解密的方式肯定藏在某个js文件中。但刚刚有说到js文件有事加密的,所以这无疑给小菜鸟一重击。最终,历尽千辛万苦,小菜鸟还是没找到那文件,是小菜鸟的师兄告诉小菜鸟的。
虽然有这么多的反爬措施,但最终小菜鸟还是获取到了页面上的数据,这让小菜鸟更加坚信一点:只要页面上有的,都能通过爬虫获取到。
浙公网安备 33010602011771号