Ich versuche, die Daten von NSE India Website herunterladen. Zu downloadende Daten sind die Zip-Dateien, die ich nach dem Download verarbeite. I Beispielcode, der die Dateien für Termine für Jahr 2016.Forbidden Zugriff 403 für einige URL mit Urllib2 Python
def start_download():
directory = 'data'
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'}
try:
#req = urllib2.Request("https://www.nseindia.com/content/historical/EQUITIES//2000/JAN/cm01JAN2000bhav.csv.zip", headers=hdr)
import ipdb;ipdb.set_trace()
req = urllib2.Request("https://www.nseindia.com/content/historical/EQUITIES//2017/NOV/cm03NOV2017bhav.csv.zip", headers=hdr)
file_url = urllib2.urlopen(req)
try:
if not os.path.exists(directory):
os.makedirs(directory)
file_name_obj = open(os.path.join(directory, "hello.zip"), 'wb')
file_name_obj.write(file_url.read())
file_name_obj.close()
except IOError, e:
print e
except Exception, e:
print e
In dem obigen Code herunterlädt, wenn ich die URL „https://www.nseindia.com/content/historical/EQUITIES//2017/NOV/cm03NOV2017bhav.csv.zip“ verwenden, lädt er die Daten. Ich habe auch versucht, Postman-Client zu verwenden, es lädt auch herunter.
Wenn ich folgende URL verwende: https://www.nseindia.com/content/historical/EQUITIES//2000/JAN/cm01JAN2000bhav.csv.zip, bekomme ich Zugriff 403 Fehler im Code sowie in Postman verboten. Wenn ich diesen Link in den Chrome-Browser einfüge, existiert auch ein Problem.
Aber wenn man durch Links von dieser Seite „https://www.nseindia.com/products/content/equities/equities/archieve_eq.htm“ und setzen Report
als Bhavcopy
und date
als 1. Januar 2000, lädt es die Datei erfolgreich * .csv.zip.
Wie behebe ich diesen 403 verbotenen Fehler für kommentierte URL im Beispielcode?