Как сканировать сайт с динамическими формами, используя WWW :: Mechanize? - PullRequest
2 голосов
/ 07 апреля 2011

Мне нравится получать и хранить значения таблицы HTML с веб-сайта, который использует некоторый Javascript и имеет URL-адрес, заканчивающийся на .aspx, путем написания веб-сканера на Perl.

The Веб-сайт предоставляет некоторые данные о результатах выборов.

У вас есть форма поиска с двумя вариантами, такими как выпадающее меню, Область provlist и Город / Муниципалитет munlist.

  • Вы выбираете провинцию.Веб-страница перезагружается по тому же URL-адресу и изменяет список доступных параметров второго выпадающего меню, например, Город / Муниципалитет.
  • Теперь вы можете выбрать свой Город / Муниципалитет и после нажатия кнопки ПОИСКHTML-таблица становится видимой с результатами.

Мне нравится получать все эти таблицы и их результаты.

Мне нравится делать это с Perl, однако до сих пор я писал только оченьмаленькие / простые скрипты.Было бы очень полезно, если бы у вас была общая информация о том, как мне начать эту задачу.

  1. Ранее я использовал некоторые из функций WWW::Mechanize, но только некоторые из них.Могу ли я выполнить эту работу с функциями WWW::Mechanize, достаточно ли этих функций?Или мне нужны дополнительные пакеты?
  2. В FAQ для WWW::Mechanize говорится, что у него есть некоторые проблемы с Javascript.Тем не менее, в другом посте, который я прочитал, возможно, удастся избежать этого Javascript.Вызывает ли вызываемая функция Javascript одно из выпадающих меню проблему?

    <select name="provlist" onchange="javascript:setTimeout('__doPostBack(\'provlist\',\'\')', 0)" id="provlist" tabindex="1">
    
  3. Насколько проблематична среда ASPX?

Как я уже говорил ранее, у меня есть только небольшой опыт написания сканеров Perl, поэтому любая информация / подсказки / и т.д.Вы можете предоставить высоко ценятся.

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011
  1. Достаточно.
  2. Форма ухудшается без Javascript.Отправьте форму один раз с другим элементом provlist, например, AGUSAN DEL NORTE , и страница ответа будет иметь соответствующий munlist ( BUENAVISTA и т. Д.) И формубудет установлен первый элемент списка, и таблица будет содержать данные для первого элемента.
1 голос
/ 07 апреля 2011

В FAQ для WWW :: Mechanize говорится, что у него есть некоторые проблемы с Javascript.Тем не менее, в другом посте, который я прочитал, возможно, удастся избежать этого Javascript.Вызывает ли вызываемая функция Javascript одно из выпадающих меню проблему?

Если вы хотите механизировать тяжелые страницы JS, вам, вероятно, стоит взглянуть на WWW :: Mechanize :: Firefox

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