Comment puis-je télécharger le fichier pdf via https avec python
Je suis en train d'écrire un script python qui va sauvegarder le fichier pdf localement selon le format donné dans l'URL. pour eg.
https://Hostname/saveReport/file_name.pdf #saves the content in PDF file.
Je vais ouvrir cette URL par le biais d'un script python :
import webbrowser
webbrowser.open("https://Hostname/saveReport/file_name.pdf")
L'url contient beaucoup d'images et de texte. Une fois cette URL est ouverte je veux enregistrer un fichier au format pdf à l'aide d'un script python.
C'est ce que j'ai fait jusqu'à présent.
Code 1:
import requests
url="https://Hostname/saveReport/file_name.pdf" #Note: It's https
r = requests.get(url, auth=('usrname', 'password'), verify=False)
file = open("file_name.pdf", 'w')
file.write(r.read())
file.close()
Code 2:
import urllib2
import ssl
url="https://Hostname/saveReport/file_name.pdf"
context = ssl._create_unverified_context()
response = urllib2.urlopen(url, context=context) #How should i pass authorization details here?
html = response.read()
Dans le code ci-dessus, j'obtiens: urllib2.HTTPError: Erreur HTTP 401: non autorisé
Si j'utilise le Code 2, comment puis-je passer de l'autorisation de détails?
Voulez-vous une solution à l'aide de
J'ai essayé les méthodes ci-dessus. La demande urllib2 tout fonctionne.
webbrowser.open
, requests.get
, ou urllib2.urlopen
?J'ai essayé les méthodes ci-dessus. La demande urllib2 tout fonctionne.
OriginalL'auteur | 2015-11-02
Vous devez vous connecter pour publier un commentaire.
Je pense que ce sera un travail
OriginalL'auteur Joran Beasley
Une façon de le faire est:
OriginalL'auteur baji
Pour certains fichiers - au moins des archives tar (ou même tous les autres fichiers), vous pouvez utiliser pip:
Mais vous devez vous assurer que le téléchargement a réussi une autre façon que le pip soulèverait d'erreur pour tous les fichiers qui ne sont pas des archives contenant setup.py donc stderr=tube (Ou peut-être vous pouvez déterminer si le téléchargement a réussi par l'analyse de sous-processus de message d'erreur).
OriginalL'auteur Peter Zagubisalo
Vous pouvez essayer quelque chose comme :
response.text
est probablement un mauvais choix, car il implique une étape de décodage. Peut-être ouvrir le fichier avecwb
et écrireresponse.content
à la place.réponse.raw je pense
Apparemment,
response.iter_chunk
estrequest
'"préféré et de la manière recommandée pour récupérer un document": docs.python-requests.org/en/latest/user/quickstart/...J'ai édité avec un meilleur moyen d'obtenir le contenu de la réponse
OriginalL'auteur Raphaël Vigée