python初学者笔记——百度搜索关键词提取问题解决

声明:本文为作者原创,转载请标明出处,欢迎大家共同学习讨论。文章中有其他文章的链接,如有侵权,请及时联系我,进行处理。
引用的文章:
爬虫行动被限制,改换ip只是其中一个办法
python爬虫设置请求消息头(headers)

1. 问题叙述

在我上一篇文章python初学者笔记——爬虫requests(续)中,在用爬虫爬取百度关键词提取的时候,出现了问题,爬取的结果是一个验证网址,需要人工验证才可以。我尝试了更改headers的user-agent为Mozilla/5.0,然而还是不行。

2. 问题解决过程

如果是我们手动输入网址的话,就不会出现这个界面。说明我们的爬虫没有成功伪装自己,发送的请求和人的浏览方式还有一定的区别。
网上胡乱搜了一通,太复杂的我也实现不了,只能试试一些简单的方法。
最初给我思路的是爬虫行动被限制,改换ip只是其中一个办法这篇文章,文章中提到headers的限制不仅仅有User-agent,还有其他的一些东西。于是我又搜了一番关于头文件的文章。python爬虫设置请求消息头(headers)这篇文章中,对于headers的设置明显更加详细。我尝试着把头文件完整的改了一遍,还真的成功了。

3. 问题解决方案

首先打开你的浏览器,随便搜索下。然后F12,找到如下界面。
在这里插入图片描述
在图片的右侧,我们可以看到详细的请求标头。我们不需要全部改写,只需要在程序中改User-Agent和Accept-Language即可。
具体代码如下:

import requests
keyword = "Python"
try:
    kv = {'wd': keyword}
    new_headers = {'user-agent': 'Mozilla', 'Accept-language': 'zh-CN'}
    r = requests.get("http://www.baidu.com/s", params=kv, headers = new_headers)
    print(r.request.url)
    r.raise_for_status()
    print(len(r.text))
except:
    print("爬取失败")

运行结果如下:

http://www.baidu.com/s?wd=Python
427560

完美解决!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值