Ich versuche, das Herunterladen historischer Bestandsdaten mit Python zu automatisieren. Die URL, die ich öffnen möchte, antwortet mit einer CSV-Datei, kann jedoch nicht mit urllib2 geöffnet werden. Ich habe versucht, den Benutzeragenten zu ändern, wie in einigen Fragen zuvor angegeben. Ich habe sogar versucht, Antwort-Cookies zu akzeptieren, ohne Glück. Können Sie bitte helfen.
Hinweis: Die gleiche Methode funktioniert für 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)
Error
Datei "C: \ Python27 \ lib \ urllib2.py", Zeile 527, in http_error_default HTTPError (req.get_full_url (), Code, msg, hdrs, fp) auslösen urllib2.HTTPError: HTTP-Fehler 403: Verboten
Danke für deine Hilfe
Antworten:
Durch Hinzufügen einiger weiterer Header konnte ich die Daten abrufen:
Eigentlich funktioniert es nur mit diesem einen zusätzlichen Header:
quelle
Dies funktioniert in Python 3
quelle
Die NSE-Website hat sich geändert und die älteren Skripte sind für die aktuelle Website halboptimal. Dieses Snippet kann tägliche Details zur Sicherheit erfassen. Zu den Details gehören Symbol, Wertpapierart, vorheriger Schlusskurs, offener Preis, hoher Preis, niedriger Preis, Durchschnittspreis, gehandelte Menge, Umsatz, Anzahl der Geschäfte, lieferbare Mengen und Verhältnis von geliefertem zu gehandeltem Prozentsatz. Diese werden bequem als Liste der Wörterbuchform dargestellt.
Python 3.X Version mit Anfragen und BeautifulSoup
Außerdem ist dies relativ modular und gebrauchsfertig.
quelle