Запросы Python: публиковать команды javascript - PullRequest
0 голосов
/ 14 марта 2019

Итак, я пытаюсь получить контент сайта, но этот контент появляется только при нажатии на ссылку «Диаграмма», которая представляет собой команду javascript, подобную этой:

javascript:__doPostBack('fcc1$dgrC$ctl02$ctl00',''

изтакой элемент:

<a href="javascript:__doPostBack(&#39;fcc1$dgrC$ctl02$ctl00&#39;,&#39;&#39;)">Chart</a>

Это сайт:

введите описание изображения здесь

И это то, что происходит, когда вы нажимаете 'Chart ':

введите описание изображения здесь

Вы можете видеть, что ссылка не меняется, поэтому единственный способ получить код диаграммы - это каким-то образом отправить команду javascript.

Как найти все ссылки на диаграммы?Как я могу сделать «виртуальный клик» по ссылкам диаграммы?И после этого, как получить новый HTML?

Я очень ценю вашу помощь!

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

doPostBack просто устанавливает поля формы __EVENTTARGET и __EVENTARGUMENT и отправляет форму. Кстати, это всего лишь цитаты.

0 голосов
/ 14 марта 2019

Если эти ссылки действительно "нажимаются" слушателями JavaScript, у вас могут возникнуть проблемы с поиском реальной ссылки для нажатия.

Вместо этого вы можете использовать инструмент для имитации веб-браузера на python и «щелкнуть» по этой ссылке, чтобы перейти на следующую страницу. Лучший из тех, что я использовал, это Механический суп: https://mechanicalsoup.readthedocs.io/en/stable/introduction.html.

...