我想全局设置请求“用户代理” 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.Sessiondocumentation

或者,如果要将 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/

10-13 04:58