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

Python3 requests 爬取百度,遇到被重定向问题

  •  
  •   cwlmxwb · 2017-05-27 20:27:51 +08:00 · 3331 次点击
    这是一个创建于 2731 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用 requests.get 在百度上搜索一个关键字,百度会返回一个页面,页面的最底下会有第 1 页,第 2 页这样的按钮。获取这个按钮上的 href 后,再使用 requests.get 去获取这个 url,结果返回如下: <html> <head> <script> location.replace(location.href.replace("https://","http://")); </script> </head> <body> <noscript><meta http-equiv="refresh" content="0;url=&lt;a href=" http:="" <a="" href="http://www.baidu.com" rel="nofollow">www.baidu.com="" "="" rel="nofollow">http://www.baidu.com/"></noscript> </body> </html>

    请问下 V 友们,这个该怎么解决

    6 条回复    2017-05-27 22:57:11 +08:00
    dd99iii
        1
    dd99iii  
       2017-05-27 20:58:37 +08:00
    code 呢
    kindjeff
        2
    kindjeff  
       2017-05-27 21:36:34 +08:00
    你爬到的链接都换成 https 的再访问呗。
    cwlmxwb
        3
    cwlmxwb  
    OP
       2017-05-27 22:01:38 +08:00
    @kindjeff 得到了一样的结果呢
    cwlmxwb
        4
    cwlmxwb  
    OP
       2017-05-27 22:02:12 +08:00
    @dd99iii user_agent = "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
    headers = {'User_Agent':user_agent}
    response = requests.get(url, headers = headers,timeout=10)
    return str(response.text)

    这样的
    GoBeyond
        5
    GoBeyond  
       2017-05-27 22:48:48 +08:00 via Android   ❤️ 1
    你可以读一下这段 HTML,你会发现它在试图从 https 降到 http,虽然我也不清楚为什么会这样,但是你可以试一下
    cwlmxwb
        6
    cwlmxwb  
    OP
       2017-05-27 22:57:11 +08:00
    @GoBeyond 老哥 厉害了 我把 https 改成 http 果然访问成功了 帮大忙
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5686 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:25 · PVG 16:25 · LAX 00:25 · JFK 03:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.