Envío de "agente de usuario" usando la biblioteca de solicitudes en Python
Quiero enviar un valor "User-agent"
mientras solicito una página web usando solicitudes de Python. No estoy seguro de si está bien enviar esto como parte del encabezado, como en el siguiente código:
debug = {'verbose': sys.stderr}
user_agent = {'User-agent': 'Mozilla/5.0'}
response = requests.get(url, headers = user_agent, config=debug)
La información de depuración no muestra los encabezados que se envían durante la solicitud.
¿Es aceptable enviar esta información en el encabezado? Si no, ¿cómo puedo enviarlo?
Debe user-agent
especificarse como un campo en el encabezado.
Aquí hay una lista de campos de encabezado HTTP , y probablemente le interesen los campos específicos de la solicitud , que incluyen User-Agent
.
Si está utilizando solicitudes v2.13 y posteriores
La forma más sencilla de hacer lo que desea es crear un diccionario y especificar sus encabezados directamente, así:
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)
Si está utilizando solicitudes v2.12.x y anteriores
Versiones anteriores de requests
encabezados predeterminados bloqueados, por lo que querrás hacer lo siguiente para conservar los encabezados predeterminados y luego agregarles los tuyos propios.
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)
Es más conveniente usar una sesión , de esta manera no tendrás que acordarte de configurar encabezados cada vez:
session = requests.Session()
session.headers.update({'User-Agent': 'Custom user agent'})
session.get('https://httpbin.org/headers')
De forma predeterminada, la sesión también administra las cookies por usted. En caso de que desee desactivar eso, consulte esta pregunta .
Enviará la solicitud como navegador.
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)