J'ai l'adresse web suivante:
dls = "http://www.muellerindustries.com/uploads/pdf/UW SPD0114.xls"
J'ai essayé de télécharger le fichier:
urllib2.urlopen(dls, "test.xls")
Cela a créé un fichier appelé "test.xls", mais il s’agit clairement d’un fichier HTML. Si j'ai ouvert le fichier html dans firefox, il a ouvert un fichier Excel, mais si j'ai ouvert le fichier dans Excel, ce n'était certainement pas le fichier Excel que je cherchais.
Si j'ai une adresse Web similaire à celle ci-dessus, comment faire pour que Python télécharge le fichier Excel en tant que fichier Excel?
Cela enregistrerait le fichier Excel dans le même dossier à partir duquel le script a été exécuté.
import urllib
dls = "http://www.muellerindustries.com/uploads/pdf/UW SPD0114.xls"
urllib.urlretrieve(dls, "test.xls")
Je suggère d'utiliser demandes :
import requests
dls = "http://www.muellerindustries.com/uploads/pdf/UW SPD0114.xls"
resp = requests.get(dls)
output = open('test.xls', 'wb')
output.write(resp.content)
output.close()
Pour que les demandes soient installées:
pip install requests
Pour ajouter à la suggestion de requêtes de Fedalto (+1), mais rendez-la plus pythonique avec un gestionnaire de contexte:
import requests
dls = "http://www.muellerindustries.com/uploads/pdf/UW SPD0114.xls"
resp = requests.get(dls)
with open('test.xls', 'wb') as output:
output.write(resp.content)
Deux problèmes, l'un avec le code (ci-dessous), l'autre que l'URL est incorrecte. Un navigateur Web (moderne) corrigera automatiquement " http://www.muellerindustries.com/uploads/pdf/UW SPD0114.xls" en " http://www.muellerindustries.com/uploads/pdf /UW%20SPD0114.xls "mais pas Python.
Ce code fonctionne pour moi sur Python 3.x
import urllib
outfilename = "test.xls"
url_of_file = "http://www.muellerindustries.com/uploads/pdf/UW%20SPD0114.xls"
urllib.request.urlretrieve(url_of_file, outfilename)
Ce qui me donne le fichier.