2017-04-24 1 views
1

J'essaie de télécharger un pdf en utilisant le script python. J'avais essayé d'utiliser urlib, pdfkit et aussi curl. Pendant que j'essaye de télécharger le pdf, j'obtiens le contenu html/js de la page au lieu du pdf. Veuillez m'aider à résoudre ce problème.impossible de télécharger pdf en utilisant python

utilisant PDFKit:

import pdfkit 
pdfkit.from_url('http://www.kubota.com/product/BSeries/B2301/pdf/B01_Specs.pdf', 'out.pdf', options = {'javascript-delay':'10000'}) 

utilisant urllib:

import urllib2 
response = urllib2.urlopen('http://www.kubota.com/product/BSeries/B2301/pdf/B01_Specs.pdf') 
file = open("out.pdf", 'wb') 
file.write(response.read()) 
file.close() 

Répondre

2

Vous pouvez utiliser la bibliothèque urllib3

import urllib3 

def download_file(download_url): 
    http = urllib3.PoolManager() 
    response = http.request('GET', download_url) 
    f = open('output.pdf', 'wb') 
    f.write(response.data) 
    f.close() 

if __name__ == '__main__': 
    download_file('http://www.kubota.com/product/BSeries/B2301/pdf/B01_Specs.pdf') 
+0

Super ... Ça marche! –

0

Vous devriez être en mesure de le faire avec requests assez facilement

import requests 

r = requests.get('http://www.axmag.com/download/pdfurl-guide.pdf') #your url here 
with open('your_file_path_here.pdf', 'wb') as f: 
    f.write(r.content) 
+0

En fait, juste essayé avec votre lien et il semble qu'il y a un captcha/une sorte d'authentification avant de pouvoir obtenir le PDF que vous recherchez, donc c'est probablement le problème, plutôt que le code – slearner

+0

Merci pour la réponse. comment puis-je le résoudre? Ai-je besoin d'envoyer des informations via les en-têtes pour déchiffrer l'authentification? –