Вопрос-Ответ

Sending "User-agent" using Requests library in Python

Отправка "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.

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

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

import requests

url = 'SOME URL'

headers = {
'User-Agent': 'My User Agent 1.0',
'From': 'youremail@domain.example' # This is another valid field
}

response = requests.get(url, headers=headers)

Если вы используете requests версии 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')

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

Ответ 3

It will send the request like browser

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)
2023-12-16 22:50 python python-requests