Как прочитать полный исходный код HTML на этой странице с помощью кнопки «подробнее» - PullRequest
0 голосов
/ 12 января 2012

У меня есть веб-страница ниже для проводника, как вы можете видеть, она посвящена торговле на Форексе, и на веб-сайте перечислены все записи текущих сделок здесь:

http://www.forexfactory.com/trades.php?reset=1

Я обычно использую python для чтения исходного кода и анализа информации с помощью BeautifulSoup. Однако в этом случае, как вы можете видеть, в конце панели есть кнопка «еще»:

занятой кот http://i.minus.com/ibfq5BgLjta0Lo.jpg

Если я щелкну по нему один раз, список сделок будет расширен один раз, и в конце списка здесь будет еще один щелчок. После нажатия два или три раза весь список будет показан полностью. Как я мог позволить питону нажимать больше в моде программного кода, чем я мог получить весь список торговых записей?

Следующий вопрос также: обычно мы можем прочитать исходный код HTML и использовать некоторую технологию синтаксического анализа для получения текстовой информации из сложных тегов. Однако, если вы не переходите к исходному коду, а используете мышь, чтобы выделить весь контент в Интернете, нажмите Ctrl + C, после чего вы получите весь текст, отображаемый в вашем браузере без сложных тегов. Я подумал, что это может быть еще один способ получения информации. Тем не менее, кажется, что питон мог только читать исходный код HTML, и есть ли способ, подобный тому, который я описал, просто выбрать весь контент в сети, а затем скопировать, после чего мы получим длинную строку, включая всю текстовую информацию без тегов?

Спасибо большое гуру !!!

Ответы [ 2 ]

2 голосов
/ 12 января 2012

В основном при нажатии more устанавливается заголовок X-Requested-With: XMLHttpRequest.Вы также можете увидеть это с помощью аддона live http header в Firefox.Это означает, что выполняется запрос AJAX.

Итак, в основном у вас есть два варианта:

1) Наблюдайте шаблон URL при нажатии more и используйте их в своем коде.

2) Вы можете быть включены в python-spidermonkey module, целью которого является выполнение javascript из python.

и вы также можете использовать Селен .Это библиотека, которая позволяет вам управлять настоящим веб-браузером на любом языке.

1 голос
/ 12 января 2012

Используя инструменты разработчика Webkit (в частности, Network), мы видим, что нажатие кнопки больше вызывает http://www.forexfactory.com/flex.php?do=savestate&flexId=flex_explorer_tradeActivity&more=1. Если мы щелкнем по нему еще раз, он ставит «2» после more, затем «3» и т. Д.

Если мы посмотрим на их ответ, мы получим некоторые данные JSON, содержащие информацию для загрузки на веб-странице. Ваша работа заключается в том, чтобы проанализировать эту информацию (поверх данных, извлеченных с веб-страницы), чтобы получить полный набор данных. К сожалению, я не могу придумать, как на самом деле получить HTML после того, как щелкнуло больше, если вы не создадите его самостоятельно.

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