Я пытаюсь автоматизировать загрузку исторических данных о запасах с помощью python. URL-адрес, который я пытаюсь открыть, отвечает CSV-файлом, но я не могу открыть его с помощью urllib2. Я попытался изменить пользовательский агент, как указано в нескольких вопросах ранее, я даже попытался принять ответные файлы cookie, но безуспешно. Не могли бы вы помочь.
Примечание. Тот же метод работает для Yahoo Finance.
Код:
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)
ошибка
Файл «C: \ Python27 \ lib \ urllib2.py», строка 527, в http_error_default вызывает HTTPError (req.get_full_url (), code, msg, hdrs, fp) urllib2.HTTPError: Ошибка HTTP 403: запрещено
Спасибо за твою помощь
Ответы:
Добавив еще несколько заголовков, я смог получить данные:
На самом деле он работает только с одним дополнительным заголовком:
источник
Это будет работать в Python 3
источник
Веб-сайт NSE изменился, и старые скрипты частично оптимальны для текущего веб-сайта. Этот фрагмент может собирать ежедневные сведения о безопасности. Подробная информация включает символ, тип ценной бумаги, предыдущее закрытие, цену открытия, максимальную цену, минимальную цену, среднюю цену, количество сделок, оборот, количество сделок, количество поставленных сделок и соотношение поставленных и проданных сделок в процентах. Они удобно представлены в виде списка в виде словаря.
Версия Python 3.X с запросами и BeautifulSoup
Кроме того, это относительно модульный и готовый к использованию сниппет.
источник