作家
登录

反爬烦的不行?看看这个神级程序员怎么来破解的!

作者: 来源: 2017-10-31 11:11:58 阅读 我要评论

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

打开改网页发明为第二页真正的数据源,经由过程仿造请求可以抓取每一页的数据。

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

很多网页的运维者经由过程组合以上几种手段,然后形成一套反爬策略,就像之前碰着过一个复杂收集传输+加快活+cookies时效的反爬手段。

7. 加快活 :有些网站应用了加快活的办事,在拜访之前先断定客户端的cookie正不精确。如不雅不精确,返回521状况码,set-cookie并且返回一段js代码经由过程浏览器履行后又可以生成一个cookie,只有这两个cookie一路发送给办事器,才会返回精确的网页内容。

解决办法 :将浏览器返回的js代码放在一个字符串中,然后应用nodejs对这段代码进行反紧缩,然后对局部的信息进行解密,获得关键信息放入下一次拜访请求的头晨中。

案例:加快活

如许的一个交互过程仅仅用python的requests库是解决不了的,经由查阅材料,有两种解决办法:

第一种将返回的set-cookie获取到之后再经由过程脚本履行返回的eval加密的js代码,将代码中生成的cookie与之前set-cookie结合发送给办事器就可以返回精确的内容,即状况码大年夜521变成了200。

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

类似于这种:

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

切记,放在requests中拜访的headers信息必定要和你操控的浏览器headers信息一致,因为办事器端也会检查cookies与headers信息是否一致

这里我们就须要对这段JS做下修改,假设我们先把这段JS代码存在了string sHtmlJs这个字符串变量里,我们须要把eval这里履行的结不雅提掏出来,把eval调换成 return,然后把全部代码放到一个JS函数里,方法如下:

案例:拉勾网

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

显而易见,这个dc就是我们想要的cookie,履行JS,让函数返回DC就OK了。

解密后的代码如下:

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

经由过程不雅察代码发清楚明了一段:

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

当办事器发明浏览器的头晨是_phantom或者__phantommas就让浏览器进行逝世轮回,即阻拦用selenium操控phantomjs来拜访网页。

至此两端加快活cookie如下:

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

这个破解办法很麻烦不建议用,所以我想出了第二种办法

第二种办法就是经由过程selenium的webdriver模块控制浏览器主动拜访网页然后输出浏览器头部信息中的cookie,封装在一个字典中,将其经由过程requests中的jar模块转换成cookiejar放入下一次拜访的request中就可以持续拜访,因为cookie的时效大年夜约一个小时阁下。

以下是处理主动生成一个新的有效cookie的代码:

反爬烦的不可?看看这个神级法度榜样员怎么来破解的!强的不可!

最厉害的武功是融合贯通,那么最厉害的反爬策略也就是组合今朝有的各类反爬手段,当然也不是无法破解,这就须要我们对各个反爬技巧及道理都很清跋扈,梳理清跋扈办事器的反爬逻辑,然后再会招拆招,就可以让我们的爬虫无孔不入。

感谢浏览!



  推荐阅读

  2018年基础设施发展的8个趋势

2017年架构师最重要的48个小时 | 8折倒计时 云计算正在逐渐获得企业的青睐,然则企业本地的IT基本举措措施仍然>>>详细阅读


本文标题:反爬烦的不行?看看这个神级程序员怎么来破解的!

地址:http://www.17bianji.com/lsqh/38283.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)