Python爬虫之requests定制请求头

缘由

上一篇文章里面说到,获取百度的内容的时候,我们并没有得到我们想要的结果,这个到底是为啥呢,主要是用requests的请求更浏览器的自己发的请求的区别在于请求头,浏览器的请求是有定制的请求头,而requests的请求是没有请求头的,我们猜想,由于没有请求头,百度判断我们不是合理或者说是合法的请求,因此没有给我们相对应的正确的结果

定制请求头

如果你想为请求添加 HTTP 头部,只要简单地传递一个 dict 给 headers 参数就可以了。

import requests


url = 'https://www.baidu.com/s'
params = {
    'wd': 'Chrome'
}
headers = {'user-agent': 'my-app/0.0.1'}
rsp = requests.get(url, params=params, headers=headers)

显然,这样我们依然是得不到我们想要的结果,那我们怎么知道请求头应该带上什么内容呢,我们用浏览器打开百度,然后看一下它发的是什么,那我们也这样发不就行啦,^_^
具体代码:

import requests


url = 'https://www.baidu.com/s'
params = {
    'wd': 'Chrome'
}
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
    'Referer': 'https://www.baidu.com/'
}
rsp = requests.get(url, params=params, headers=headers)

然后我们在运行上面的代码,终于得到我们想要的啦

下一篇我们开始实战训练

发表评论

电子邮件地址不会被公开。 必填项已用*标注