Если вы посмотрите на кнопку загрузки на этой странице, это ссылка на следующую функцию javascript: SRT_stocFund.Export()
Просмотр этой функции (на http://financials.morningstar.com/finan/static/script/SRT_stockFund.js), она вызывает SRT_StockFund.GetPara()
, и использует возвращенные данные для создания ссылки и изменяет местоположение вашего браузера на нее:
document.location = hostPath+"/ajax/ReportProcess4CSV.html?" + params+"&denominatorView="+denominatorView+"&number="+number;
В моем случае URL выглядел так:
"//financials.morningstar.com/ajax/ReportProcess4CSV.html?&t=XNAS:AAPL®ion=usa&culture=en-US&cur=&reportType=bs&period=12&dataType=A&order=asc&columnYear=5&curYearPart=1st5year&rounding=3&view=raw&r=13805&denominatorView=raw&number=3"
То, что вы могли бы легко сделать в селене, это:
- вызвать функцию
GetPara()
- создать URL-адрес загрузки самостоятельно.
Вы можете вызвать javascript изнутри Селена с помощью чего-то вроде: driver.execute_script('SRT_stocFund.GetPara()')
- и затем создать свою строку, чтобы создать ссылку для загрузки, и получить ее.
Инструменты разработчика вашего браузера - ваш друг здесь.