Perl :: Mechanize: запуск простого сканера с циклом [несколько запросов]

0

в настоящее время сглаживает способ анализа данных страницы: http://www.foundationfinder.ch/

Мне нравится делать это в Perl: Ну, я просто размышляю, что это лучший способ выполнить эту работу. Угадайте, что я перед хорошей кривой обучения.;) Эта задача даст мне несколько приятных перлов. На данный момент он идет на мою голову...; -)

Итак, вот пример страницы:

Изображение 174551

... и поскольку я думал, что могу найти все 790 результирующих страниц в определенном диапазоне между Id = 0 и Id = 100000, я подумал, что я могу идти по пути с циклом:

http://www.foundationfinder.ch/ShowDetails.php?Id=11233&InterfaceLanguage=&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=927&InterfaceLanguage=1&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=949&InterfaceLanguage=1&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=20011&InterfaceLanguage=1&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=10579&InterfaceLanguage=1&Type=Html

Я думал, что могу пойти на Perl-Way, но я не очень уверен: я пытался использовать LWP:: UserAgent на тех же URL-адресах [см. ниже] с разными аргументами запроса, и мне интересно, LWP:: UserAgent предоставляет нам возможность прокручивать аргументы запроса? Я не уверен, что у LWP:: UserAgent есть метод для этого. Ну, я иногда слышал, что проще использовать Mechanize. Но действительно ли это проще?

КСТАТИ; Но если я иду по PHP, я мог бы сделать это с помощью Curl - couldnt i!?

Вот мой подход: я попытался понять это. И я углубился в Manpages и Howtos. Мы можем создать цикл, создающий URL-адреса, и использовать Curl - повторно

Как отмечалось выше: здесь мы имеем некоторые страницы результатов;

http://www.foundationfinder.ch/ShowDetails.php?Id=11233&InterfaceLanguage=&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=927&InterfaceLanguage=1&Type=Html

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

Опять же: цель: я хочу проанализировать данные, а затем я хочу сохранить их в локальной базе данных MySQL

Я должен определить extern_uid!?

и выполните следующие действия:

for my $i (0..10000) {
  $ua->get('http://www.foundationfinder.ch/ShowDetails.php?Id=', id => 21, extern_uid => $i);
  # process reply
}

Ну, но теперь я застрял - мне нужна помощь - могу ли я выполнить эту работу??

приветствует

нулевым

Теги:
parsing
mechanize
lwp

1 ответ

3
Лучший ответ

Не делай так. Используйте HTTP-заголовки (плагин Firefox) или eqv. чтобы увидеть, что javasript делает за кулисами, пока вы выбираете, что вам нужно от здесь, чтобы перейти на эту страницу (со своей таблицей).

Чтобы получить данные из таблицы, используйте HTML::TableExtract или HTML::TreeBuilder::XPath, если вы хотите использовать XPath

Если вы хотите выполнить итерацию по запросам, просто создайте еще один var:

my $a = 'http://www.foundationfinder.ch/ShowDetails.php?Id=' . $q . '&InterfaceLanguage=&Type=Html';

и приращив $q, убедитесь, что страница действительна, прежде чем пытаться загрузить ее с помощью get

  • 0
    привет SoulSurfer, большое спасибо от вас! Я никогда не работал с liveHeaders в FF. Можете ли вы дать мне руку помощи - (также в Table Extract или Treebuilder !?), чтобы получить первый взгляд на XPAth, над которым я работаю. Рад вас слышать!
  • 0
    Привет SoulSurfer - большое спасибо. Я уверен, что я должен убедиться, что страница действительна, прежде чем пытаться загрузить его с помощью get. Действительная точка! Так что пока. Я постараюсь ужиться с этой первой помощью! Надеюсь, я справлюсь с задачей!
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню