使用Python中的请求库发送“用户代理”

发布于 2021-02-02 23:11:51

我想在"User-agent"使用Python请求请求网页时发送的值。我不确定是否可以将其作为标头的一部分发送,如以下代码所示:

debug = {'verbose': sys.stderr}
user_agent = {'User-agent': 'Mozilla/5.0'}
response  = requests.get(url, headers = user_agent, config=debug)

调试信息未显示请求期间发送的标头。

在标头中发送此信息是否可以接受?如果没有,我该如何发送?

关注者
0
被浏览
75
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    user-agent应指定为在报头中的字段。

    这是HTTP标头字段的列表,你可能会对特定于请求的字段感兴趣,其中包括User-Agent。

    如果你使用的是v2.13及更高版本的请求

    执行所需操作的最简单方法是创建字典并直接指定标题,如下所示:

    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)
    

    如果你使用的是v2.12.x及更高版本的请求

    较旧版本的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)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看