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

本文共 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

你可能感兴趣的文章
Walls and Gates
查看>>
JavaScript 继承的那些事
查看>>
Scala中的函数式特性
查看>>
脱离“体验”和“安全”谈盈利的游戏运营 都是耍流氓
查看>>
试水区块链出版?纽约时报在招人了
查看>>
拥抱PostgreSQL,红帽再表态:SSPL的MongoDB坚决不用
查看>>
让架构更简单,QCon上海2016热点前瞻
查看>>
如何测试ASP.NET Core Web API
查看>>
SQL Server新一轮更新
查看>>
想像亚马逊或 Netflix 一样酷?抱走敏捷转型五大秘籍
查看>>
《Git in Practice》作者访谈:关于Git的八个问题
查看>>
Visual Studio 2019正式版发布,专注于人工智能和生产力
查看>>
写给Java程序员的Java虚拟机学习指南
查看>>
苏宁11.11:如何基于异步化打造会员任务平台?
查看>>
滴滴开源支撑业务代码重构工具Rdebug
查看>>
Table Editor 使用方法
查看>>
支持多种小程序!阿里云ARMS推出小程序监控
查看>>
《The Age of Surge》作者访谈
查看>>
《A Seat at the Table》作者访谈录
查看>>
F# 4.5提供Spans、Match!等特性
查看>>