Отправка "User-agent" с помощью библиотеки запросов в Python

Я хочу отправить значение для "User-agent" при запросе веб-страницы с использованием запросов Python. Я не уверен, что если это нормально, отправьте это как часть заголовка, как в приведенном ниже коде:

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

Отладочная информация не отображает заголовки, отправленные во время запроса.

Допустимо ли отправлять эту информацию в заголовок? Если нет, как я могу его отправить?

Ответ 1

user-agent должен быть указан как поле в заголовке.

Вот список полей заголовка HTTP, и вам, вероятно, будет интересно поля для запроса, которые включают user-agent.

Если вы используете запросы v2.13 и new

Самый простой способ сделать то, что вы хотите, - создать словарь и напрямую указать заголовки, например:

import requests

url = 'SOME URL'

headers = {
    'User-Agent': 'My User Agent 1.0',
    'From': '[email protected]'  # 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)

Ответ 2

Более удобно использовать сеанс, так что вам не нужно запоминать каждый раз каждый раз задавать заголовки:

session = requests.Session()
session.headers.update({'User-Agent': 'Custom user agent'})

session.get('https://httpbin.org/headers')

По умолчанию сеанс также управляет файлами cookie для вас. Если вы хотите отключить это, см. этот вопрос.