J'essaie d'automatiser le téléchargement des données de stock historiques à l'aide de python. L'URL que j'essaie d'ouvrir répond par un fichier CSV, mais je ne parviens pas à ouvrir en utilisant urllib2. J'ai essayé de changer d'agent utilisateur comme spécifié dans quelques questions plus tôt, j'ai même essayé d'accepter les cookies de réponse, sans succès. Peux-tu aider s'il te plait.
Remarque: la même méthode fonctionne pour Yahoo Finance.
Code:
import urllib2,cookielib
site= "http://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/getHistoricalData.jsp?symbol=JPASSOCIAT&fromDate=1-JAN-2012&toDate=1-AUG-2012&datePeriod=unselected&hiddDwnld=true"
hdr = {'User-Agent':'Mozilla/5.0'}
req = urllib2.Request(site,headers=hdr)
page = urllib2.urlopen(req)
Erreur
Fichier "C: \ Python27 \ lib \ urllib2.py", ligne 527, dans http_error_default, lever HTTPError (req.get_full_url (), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 403: Forbidden
Merci pour votre aide
Réponses:
En ajoutant quelques en-têtes supplémentaires, j'ai pu obtenir les données:
En fait, cela fonctionne avec juste cet en-tête supplémentaire:
la source
Cela fonctionnera dans Python 3
la source
Le site Web de NSE a changé et les anciens scripts sont semi-optimaux par rapport au site Web actuel. Cet extrait peut rassembler des détails quotidiens de sécurité. Les détails incluent le symbole, le type de titre, la clôture précédente, le prix ouvert, le prix élevé, le prix bas, le prix moyen, la quantité échangée, le chiffre d'affaires, le nombre de transactions, les quantités livrables et le rapport entre livrés et négociés en pourcentage. Ceux-ci sont présentés sous forme de liste sous forme de dictionnaire.
Version Python 3.X avec requêtes et BeautifulSoup
En outre, c'est un extrait de code relativement modulaire et prêt à l'emploi.
la source