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

2017-05-27 20:27:51 +08:00
 cwlmxwb

使用 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 友们,这个该怎么解决

3199 次点击
所在节点    问与答
6 条回复
dd99iii
2017-05-27 20:58:37 +08:00
code 呢
kindjeff
2017-05-27 21:36:34 +08:00
你爬到的链接都换成 https 的再访问呗。
cwlmxwb
2017-05-27 22:01:38 +08:00
@kindjeff 得到了一样的结果呢
cwlmxwb
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
2017-05-27 22:48:48 +08:00
你可以读一下这段 HTML,你会发现它在试图从 https 降到 http,虽然我也不清楚为什么会这样,但是你可以试一下
cwlmxwb
2017-05-27 22:57:11 +08:00
@GoBeyond 老哥 厉害了 我把 https 改成 http 果然访问成功了 帮大忙

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

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

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

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

© 2021 V2EX