python的requests.get()方法获取百度搜索结果页面失败的问题

昨天学到python的requests模块,准备获取一下百度搜索的结果,然后把相关链接打开,在get()结果页的时候一直取不到,
keyword=input(‘输入要搜索的关键字:’)
res=requests.get('https://www.baidu.com/s?wd=’+keyword)
取出来的html文件是这样的

<html>
<head>
 <script>
  location.replace(location.href.replace("https://","http://"));
 </script>
</head>
<body>
 <noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript>
</body>
</html>

查了一下别人的解决方法,都没大看懂,最后问了朋友才解决
原因是一开始请求消息里没带浏览器信息,百度不识别,所以不响应。

加一个headers,把浏览器信息写进去:
headers={‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36’}
res = requests.get('https://www.baidu.com/s?wd=’+keyword,headers=headers)

获取headers的方法:
打开浏览器(我用的谷歌,别的应该也差不多),F12,随便发个请求,然后如下图获取User-Agent

从浏览器中获取请求消息的headers
把headers加到参数里去就可以了,再发请求可以成功获取百度搜索结果页的html,截了一部分
成功取出html

如果有不对的地方欢迎大佬指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值