Las solicitudes de Python no funcionan para descargar un archivo pdf a través de la URL
Normalmente uso la biblioteca de solicitudes para descargar archivos PDF que tienen una URL específica; pero esta vez no funciona y creo que puede estar relacionado con el sitio web. Descubrí en la web que agregar encabezados puede funcionar en algunos casos, pero después de intentar con varios de ellos, el resultado es el mismo: el archivo se descarga pero no se puede abrir porque parece estar dañado.
¿Tiene algún método alternativo que pueda funcionar para descargar correctamente el archivo pdf de este sitio? Aquí está el fragmento de mi último intento:
import requests
url = 'https://www.adgm.com/documents/operating-in-adgm/ongoing-obligation/enforcement/alpha-development-middle-east-ltd-penalty-notice-redacted.pdf?la=en&hash=5EA2DA7D1492D105375580EEF2FB088F'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'}
response = requests.get(url, stream = True, headers = headers)
with open('sample.pdf', 'wb') as f:
f.write(response.content)
Gracias,
Cualquier propuesta alternativa que permita la correcta descarga del archivo pdf será muy apreciada.
Ese sitio en particular requiere los encabezados Accept-Language y User-Agent. Para descargar ese documento puedes hacer esto:
import requests
PDF = "alpha-development-middle-east-ltd-penalty-notice-redacted.pdf"
URL = f"https://www.adgm.com/documents/operating-in-adgm/ongoing-obligation/enforcement/{PDF}"
PARAMS = {
"la": "en",
"hash": "5EA2DA7D1492D105375580EEF2FB088F"
}
HEADERS = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_3_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15",
"Accept-Language": "en-GB,en;q=0.9,en-US;q=0.8,pt;q=0.7"
}
CHUNK = 32 * 1024
with requests.get(URL, headers=HEADERS, params=PARAMS, stream=True) as response:
response.raise_for_status()
with open(PDF, "wb") as output:
for data in response.iter_content(CHUNK):
output.write(data)