txt - ¿Cómo obtener el nombre de archivo pdf con las solicitudes de Python?
python directorio actual (2)
Estoy usando la lib de solicitudes de Python para obtener un archivo PDF de la web. Esto funciona bien, pero ahora también quiero el nombre del archivo original. Si voy a un archivo PDF en Firefox y hago clic en download
, ya tiene un nombre de archivo definido para guardar el pdf. ¿Cómo obtengo este nombre de archivo?
Por ejemplo:
import requests
r = requests.get(''http://www.researchgate.net/profile/M_Gotic/publication/260197848_Mater_Sci_Eng_B47_%281997%29_33/links/0c9605301e48beda0f000000.pdf'')
print r.headers[''content-type''] # prints ''application/pdf''
Comprobé las r.headers
para cualquier cosa interesante, pero no hay ningún nombre de archivo allí. Realmente estaba esperando algo como r.filename
...
¿Alguien sabe cómo puedo obtener el nombre de archivo de un archivo PDF descargado con la biblioteca de solicitudes?
Aparentemente, para este recurso particular está en:
r.headers[''content-disposition'']
No sé si siempre es el caso, sin embargo.
Se especifica en una content-disposition
encabezado http. Entonces para extraer el nombre que harías:
import re
d = r.headers[''content-disposition'']
fname = re.findall("filename=(.+)", d)
Nombre extraído de la cadena a través de la expresión regular (módulo re
).