HTTP-Fehler 403: Verboten beim Herunterladen von Bestandsdaten mit urllib2
Beim Versuch, den Download historischer Bestandsdaten mit urllib2 zu automatisieren, kann es passieren, dass Benutzer stoßen auf einen HTTP-Fehler 403: Verboten. Dieser Fehler tritt auf, wenn der Server den Zugriff auf die angeforderte Ressource aufgrund unzureichender Berechtigungen verweigert.
Um dieses Problem zu beheben, ziehen Sie die folgenden Änderungen an Ihrem Code in Betracht:
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, wie 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)
versuchen Sie:
page = urllib2.urlopen(req)
außer urllib2.HTTPError, e:
print e.fp.read()
content = page.read()
Inhalt drucken
Durch das Hinzufügen des Headers „Accept“ gibt der Code nun an, dass er verschiedene Inhaltstypen akzeptieren kann. einschließlich Klartext, HTML und XML. Dadurch kann das Skript erfolgreich mit dem Server verhandeln und die Bestandsdaten abrufen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Herunterladen von Bestandsdaten mit urllib2 den HTTP-Fehler 403: Verboten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!