196 python web-crawler python-requests
我想在"User-agent"使用Python请求请求网页时发送一个值.我不确定是否可以将其作为标题的一部分发送,如下面的代码所示:
debug = {'verbose': sys.stderr}
user_agent = {'User-agent': 'Mozilla/5.0'}
response  = requests.get(url, headers = user_agent, config=debug)
调试信息未显示请求期间发送的标头.
在标题中发送此信息是否可以接受?如果没有,我该如何发送?
wkl*_*wkl 294
的user-agent应指定为在报头中的字段.
以下是HTTP标头字段的列表,您可能对特定于请求的字段感兴趣,其中包括User-Agent.
做你想做的最简单的方法是创建一个字典并直接指定你的标题,如下所示:
import requests
url = 'SOME URL'
headers = {
    'User-Agent': 'My User Agent 1.0',
    'From': 'youremail@domain.com'  # This is another valid field
}
response = requests.get(url, headers=headers)
较旧版本的requests破坏默认标头,因此您需要执行以下操作以保留默认标头,然后将其自己添加到它们中.
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)
use*_*ser 44
使用会话更方便,这样您每次都不必记住设置标头:
session = requests.Session()
session.headers.update({'User-Agent': 'Custom user agent'})
session.get('https://httpbin.org/headers')
默认情况下,会话还为您管理cookie.如果您要禁用它,请参阅此问题.
Raj*_*man 14
它会像浏览器一样发送请求
import requests
url = 'https://Your-url'
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'}
response= requests.get(url.strip(), headers=headers, timeout=10)