我想在使用Python请求请求网页时为“用户代理”发送一个值。我不确定是否可以将此作为头的一部分发送,如下面的代码所示:
debug = {'verbose': sys.stderr}
user_agent = {'User-agent': 'Mozilla/5.0'}
response = requests.get(url, headers = user_agent, config=debug)
调试信息没有显示在请求期间发送的标头。
在报头中发送此信息是否可以接受?如果没有,我要怎么发送?
用户代理应该被指定为报头中的一个字段。
下面是一个HTTP报头字段列表,您可能对特定于请求的字段感兴趣,其中包括User-Agent。
如果您使用的是v2.13或更新版本的请求
最简单的方法是创建一个字典,并直接指定你的头文件,如下所示:
import requests
url = 'SOME URL'
headers = {
'User-Agent': 'My User Agent 1.0',
'From': 'youremail@domain.example' # This is another valid field
}
response = requests.get(url, headers=headers)
如果您正在使用请求v2.12。X及以上
旧版本的请求会破坏默认头,因此您需要执行以下操作来保留默认头,然后将自己的头添加到它们中。
import requests
url = 'SOME URL'
# Get a copy of the default headers that requests would use
headers = requests.utils.default_headers()
# Update the headers with your custom ones
# You don't have to worry about case-sensitivity with
# the dictionary keys, because default_headers uses a custom
# CaseInsensitiveDict implementation within requests' source code.
headers.update(
{
'User-Agent': 'My User Agent 1.0',
}
)
response = requests.get(url, headers=headers)
用户代理应该被指定为报头中的一个字段。
下面是一个HTTP报头字段列表,您可能对特定于请求的字段感兴趣,其中包括User-Agent。
如果您使用的是v2.13或更新版本的请求
最简单的方法是创建一个字典,并直接指定你的头文件,如下所示:
import requests
url = 'SOME URL'
headers = {
'User-Agent': 'My User Agent 1.0',
'From': 'youremail@domain.example' # This is another valid field
}
response = requests.get(url, headers=headers)
如果您正在使用请求v2.12。X及以上
旧版本的请求会破坏默认头,因此您需要执行以下操作来保留默认头,然后将自己的头添加到它们中。
import requests
url = 'SOME URL'
# Get a copy of the default headers that requests would use
headers = requests.utils.default_headers()
# Update the headers with your custom ones
# You don't have to worry about case-sensitivity with
# the dictionary keys, because default_headers uses a custom
# CaseInsensitiveDict implementation within requests' source code.
headers.update(
{
'User-Agent': 'My User Agent 1.0',
}
)
response = requests.get(url, headers=headers)