做爬虫练手,爬取搜房网的二手房信息
北京二手房 url 是: https://esf.fang.com/,但是爬虫发送请求时,会自动重定向到我所在城市的二手房页面(例如上海)
尝试在 request 里面添加 dont_filter 或者 settings 里面添加 REDIRECT_ENABLED = False 好像都不能解决问题
尝试在处理响应时判断是否被重定向,如果发现被重定向就重新请求目标 url 但结果是陷入死循环,新的请求还是继续被重定向
请教下各位,这种情况该如何解决? (暂时排除使用北京 IP 地址提交请求这个方案)
爬虫 log 如下:
2019-06-26 15:29:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.fang.com/SoufunFamily.htm> (referer: None) 2019-06-26 15:29:05 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (302) to <GET http://esf.sh.fang.com> from <GET https://esf.fang.com/> 2019-06-26 15:29:12 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (301) to <GET http://sh.esf.fang.com/> from <GET http://esf.sh.fang.com> 2019-06-26 15:29:17 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (302) to <GET https://sh.esf.fang.com/> from <GET http://sh.esf.fang.com/> 2019-06-26 15:29:24 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://sh.esf.fang.com/> (referer: None)
1
boom7 2019-07-01 12:50:57 +08:00
你应该做的分析流程:
1.进入北京房天下,发现跳转到了[比如]上海 2.发现左上角可以选择地区 3.选择北京,跳转成功 4.打开控制台,清除所有 cookie 和缓存,重复刚才的流程 5.发现有一条对 DefaultEsf1.aspx 的请求,它设置了 city=www 的 cookie, 并重定向到了北京房天下 6.尝试在代码里带上 city=www 的 cookie 直接请求北京房天下 |
2
towser 2019-07-01 13:21:13 +08:00
爬七层协议开个 Fiddler,照着抓包信息还原就行了
|