HTTP-verbotener Fehler beim Herunterladen historischer Bestandsdaten mit urllib2
Fehler:
"urllib2 .HTTPError: HTTP-Fehler 403: Verboten“
Erste Versuche:
Nachdem dieser Fehler beim Herunterladen historischer Bestandsdaten aufgetreten ist, wurden mehrere Schritte zur Fehlerbehebung unternommen, darunter:
Diese Versuche waren jedoch erfolglos.
Lösung:
Um den Fehler zu beheben, wurden der Anfrage zusätzliche HTTP-Header hinzugefügt. Der folgende Code demonstriert den aktualisierten Ansatz:
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 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'Accept-Encoding': 'none', 'Accept-Language': 'en-US,en;q=0.8', 'Connection': 'keep-alive'} req = urllib2.Request(site, headers=hdr) try: page = urllib2.urlopen(req) except urllib2.HTTPError, e: print e.fp.read() content = page.read() print content
Erklärung:
Durch das Hinzufügen der zusätzlichen Header, insbesondere „Accept“, konnte die Anfrage die CSV-Datei ohne abrufen Es wird der Fehler „HTTP-Fehler 403: Verboten“ angezeigt.
Das obige ist der detaillierte Inhalt vonWie behebt man „urllib2.HTTPError: HTTP Error 403: Forbidden' beim Herunterladen historischer Bestandsdaten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!