V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
viiii
V2EX  ›  问与答

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

  •  
  •   viiii · 2019-07-01 12:10:32 +08:00 · 1261 次点击
    这是一个创建于 1754 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    4 条回复    2019-07-01 18:16:03 +08:00
    boom7
        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 直接请求北京房天下
    towser
        2
    towser  
       2019-07-01 13:21:13 +08:00
    爬七层协议开个 Fiddler,照着抓包信息还原就行了
    viiii
        3
    viiii  
    OP
       2019-07-01 18:13:59 +08:00
    @towser Fiddler 目前还不会用,打算后面学一下
    viiii
        4
    viiii  
    OP
       2019-07-01 18:16:03 +08:00
    @boom7 多谢指点,等下班回去试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5235 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:00 · PVG 14:00 · LAX 23:00 · JFK 02:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.