我想全局设置请求“用户代理” header 。但我找不到任何方法来做到这一点。谁能帮我?
最佳答案
您可以在 requests.Session()
中设置全局标题:
s = requests.Session()
s.headers['User-Agent'] = 'My Browser'
s.get('http://...') # requests sent from this session will all have this User-Agent header
有关更多详细信息,请参阅
requests.Session
的 documentation。或者,如果要将 header 全局应用于非 session 发出的请求,则可以改用以下包装器:
import requests
import inspect
def override_headers(self, func, global_headers):
def wrapper(*args, **kwargs):
bound = sig.bind(*args, **kwargs)
bound.apply_defaults()
headers = bound.arguments.get('headers')
if headers:
bound.arguments['headers'] = {**headers, **global_headers}
return func(*bound.args, **bound.kwargs)
sig = inspect.signature(func)
return wrapper
requests.request = override_headers(requests.request, {'User-Agent': 'My Browser'})
以便所有请求,包括 GET、POST 等,都将与指定的 header 一起发送。
关于python - 如何全局设置请求 'user-agent' header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52497739/