博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python爬虫——绕开杂乱无章的代码和堵住请求的302异常(2)
阅读量:6872 次
发布时间:2019-06-26

本文共 1535 字,大约阅读时间需要 5 分钟。

  淘宝那次抓包,居然发现不了要抓的url位置,三星中。。。

  不过不怕,不就是没法快点分析出包嘛,下次用phantomJS硬杠,或者有时间慢慢分析也好。

  今天挑战一个稍微好爬的网站:(误)

  打开后台代码一看,山口山

  

  一堆<p style="display:none;">直接影响分析数据。

  有个使用了图像分析法,不过老夫真心认为这玩意还是不要随便用比较好,就像一些简单的网站不要用phantomJS一样

  稍微分析ip那里的代码就可以找到解的(避免查水表不发布源代码)去除html标签,连着里面的元素去除什么的,用regex还是比较简单的

  结果想再爬这个网页时,出现了302重定向

  这里,直接ban掉重定向没有多大用,关键是识别到状态再根据情况重新请求。

  从stackoverflow一哥们那里搞来了这段代码:

self.log("(parse_page) response: status=%d, URL=%s" % (response.status, response.url))        if response.status in (302,) and 'Location' in response.headers:            self.log("(parse_page) Location header: %r" % response.headers['Location'])            yield Request(response.headers['Location'],callback=self.parse,meta=self.meta)
View Code

  这段代码判定返回状态,并根据情况决定要不要重传。(这里应该有urljoin的,不知为何我安装的scrapy没有)

  结果是yield后面的代码没有运行就退出了。

  还是一样去stackoverflow求助,结果有人告诉我,ban了filter。

  dont_filter这个参数开始是为了防止程序死循环设计的,然鹅在这个框架就成了问题,它不能yield第二层request

  初始化request时,dont_filter=true,程序就会不管3721把请求提交,然后数据就返回了

  幸好这里的302不会一直302,只要cookies对上了,返回的就是200和网页代码,不会出现栈溢出

self.log("(parse_page) response: status=%d, URL=%s" % (response.status, response.url))        if response.status in (302,) and 'Location' in response.headers:            self.log("(parse_page) Location header: %r" % response.headers['Location'])            yield Request(response.headers['Location'],callback=self.parse,meta=self.meta,dont_filter=True)
View Code

   后来仔细看源码。。。特码这个教程只解决了display:none和302的问题,实际的数据还是有毒。。。

  看了下这位兄台的方法,姿势get到了!不仅知道了如何反混淆,还学会了debug网站

转载于:https://www.cnblogs.com/dgutfly/p/7207229.html

你可能感兴趣的文章
uGUI练习(七) Drag And Drop
查看>>
kernel32.dll出错解决方案
查看>>
白话经典算法系列之七 堆与堆排序
查看>>
DevExpress,LayoutControl,TreeList,GridControl等
查看>>
安卓高手之路之PackageManagerservice
查看>>
noise_process.c
查看>>
Chrome调试大全--转载
查看>>
AppBoxPro - 细粒度通用权限管理框架(可控制表格行内按钮)源码提供下载
查看>>
[转]WinForm如何调用Web Service
查看>>
android onTouch()与onTouchEvent()的区别
查看>>
SSH框架总结(框架分析+环境搭建+实例源代码下载)
查看>>
Linux ln命令具体解释及使用
查看>>
敏捷软件开发模型--SCRUM
查看>>
大容量数据库对表做分割
查看>>
2014/11/06 Oracle触发器初步 2014-11-06 09:03 49人阅读 评论(0) ...
查看>>
TCP/IP, WebSocket 和 MQTT
查看>>
p90x 涵盖了全部方式的健身方式美国经典训练DVD
查看>>
[ASP.NET]HttpCookieCollection to CookieCollection的最简单方法
查看>>
CSS3 定位| Position研究
查看>>
JSP九大内置对象
查看>>