Python-код для загрузки веб-страницы с использованием JavaScript - PullRequest
1 голос
/ 31 августа 2009

Я пытаюсь загрузить данные об акциях с биржи, используя python. Проблема в том, что нет прямой ссылки на скачивание, а есть javascript для экспорта данных.

URL страницы данных:

http://tase.co.il/TASE/Templates/Company/CompanyHistory.aspx?NRMODE=Published&NRORIGINALURL=%2fTASEEng%2fGeneral%2fCompany%2fcompanyHistoryData.htm%3fcompanyID%3d001216%26ShareID%3d01091248%26subDataType%3d0%26&NRNODEGUID={045D6005-5C86-4A8E-ADD4-C151A77EC14B}&NRCACHEHINT=Guest&shareID=01820083&companyID=000182&subDataType=0

Когда я открываю страницу данных в браузере, а затем страницу загрузки, она работает как шарм. Когда я просто открываю страницу загрузки, она ничего не загружает. Я предполагаю, что это потому, что страница данных вводит фактические данные в переменные столбцы, заголовки и т. Д.

Я пытался имитировать это поведение в скрипте Python, но безуспешно.

def download_CSV (shareID, compID):
 data_url ="http://tase.co.il/TASE/Templates/Company/CompanyHistory.aspx?NRMODE=Published&NRORIGINALURL=%2fTASEEng%2fGeneral%2fCompany%2fcompanyHistoryData.htm%3fsubDataType%3d0%26shareID%3d00759019&NRNODEGUID={045D6005-5C86-4A8E-ADD4-C151A77EC14B}&NRCACHEHINT=Guest&shareID="+shareID+"&companyID="+compID+"&subDataType=0"  
 import urllib2
 response = urllib2.urlopen(data_url)
 html = response.read()

 down_url ="http://tase.co.il/TASE/Pages/Export.aspx?tbl=0&Columns=AddColColumnsHistory&Titles=AddColTitlesHistory&sn=dsHistory&enumTblType=GridHistorydaily&ExportType=3"  
 import urllib
 urllib.urlretrieve (down_url, "test.csv")

Большое спасибо

1 Ответ

1 голос
/ 31 августа 2009

Вы можете использовать Selenium или другие способы автоматизации браузера, чтобы воспользоваться встроенным в браузер интерпретатором Javascript - для управления Selenium с помощью Python, см., Например, здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...