爬虫遇到一个问题, 请教各位

2019-07-01 12:10:32 +08:00
 viiii

做爬虫练手,爬取搜房网的二手房信息

北京二手房 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)

1326 次点击
所在节点    问与答
4 条回复
boom7
2019-07-01 12:50:57 +08:00
你应该做的分析流程:
1.进入北京房天下,发现跳转到了[比如]上海
2.发现左上角可以选择地区
3.选择北京,跳转成功
4.打开控制台,清除所有 cookie 和缓存,重复刚才的流程
5.发现有一条对 DefaultEsf1.aspx 的请求,它设置了 city=www 的 cookie, 并重定向到了北京房天下
6.尝试在代码里带上 city=www 的 cookie 直接请求北京房天下
towser
2019-07-01 13:21:13 +08:00
爬七层协议开个 Fiddler,照着抓包信息还原就行了
viiii
2019-07-01 18:13:59 +08:00
@towser Fiddler 目前还不会用,打算后面学一下
viiii
2019-07-01 18:16:03 +08:00
@boom7 多谢指点,等下班回去试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578906

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX