0
votes

Accéder à des données d'Internet

Je souhaite accéder au fichier automatiquement à l'aide de Python 3. Le site Web est https://www.dax-indices.com/documents/dax-indices/documents/resources/weightingfiles/Ranking/2019/march/mdax_rkc.20190329.xls

Lorsque vous entrez manuellement l'URL dans l'explorateur, il vous demande de télécharger le fichier, mais je veux le faire dans Python automatiquement et chargez les données comme DF. P>

Je reçois ci-dessous ERROR P>

URLERROR: P>

from urllib.request import urlretrieve
import pandas as pd

# Assign url of file: url
url = 'https://www.dax-indices.com/documents/dax-indices/Documents/Resources/WeightingFiles/Ranking/2019/March/MDAX_RKC.20190329.xls'

# Save file locally
urlretrieve(url, 'my-sheet.xls')

# Read file into a DataFrame and print its head
df=pd.read_excel('my-sheet.xls')
print(df.head())

URLError: <urlopen error [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>


2 commentaires

pourrait être votre problème d'Internet .. parce que fonctionnant parfaitement à mes côtés


Êtes-vous derrière un proxy? Essayez Cette réponse pour des solutions possibles.


4 Réponses :


0
votes

$ curl https://www.dax-inices.com/documents/dax-indices/documents/resources/weightingfiles/Ranking/2019/march/mdax_rkc.20190329.xls code>

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>307 Temporary Redirect</title>
</head><body>
<h1>Temporary Redirect</h1>
<p>The document has moved <a href="https://www.dax-indices.com/document/Resources/WeightingFiles/Ranking/2019/March/MDAX_RKC.20190329.xls">here</a>.</p>
</body></html>


0 commentaires

0
votes

J'ai couru votre code dans un environnement Jupyter et cela a fonctionné. Aucune erreur n'a été invitée, mais le Dataframe n'a que des valeurs NaN. J'ai vérifié le fichier XLS que vous essayez de lire et il semble ne contenir aucune donnée ...

Il existe d'autres moyens de récupérer des données XLS, telles que: Téléchargement d'un fichier Excel du Web à Python P>

import requests
url = 'https://www.dax-indices.com/documents/dax-indices/Documents/Resources/WeightingFiles/Ranking/2019/March/MDAX_RKC.20190329.xls'

resp = requests.get(url)

output = open('my-sheet.xls', 'wb')
output.write(resp.content)
output.close()

df=pd.read_excel('my-sheet.xls')
print(df.head())


0 commentaires

0
votes

Vous pouvez le faire directement avec des pandas et . Read_excel méthode xxx

sortie


0 commentaires

0
votes

Désolé mate. Cela fonctionne sur mon PC (pas un commentaire très utile tbh). Voici une liste de choses que vous pouvez faire ->

  • Obtenez une référence et vérifiez que le code d'état de la référence (200 ou 300 signifie que tout est bon, tout d'autre a des significations différentes)
  • Vérifiez si ce lien a une accès Bot bloqué (certains sites le font)
  • En cas d'accès bloqué à BOT, utilisez sélénium pour Python

0 commentaires