Как использовать Mechanize для обработки JavaScript? - PullRequest
27 голосов
/ 29 апреля 2009

Я подключаюсь к веб-сайту, авторизируюсь.

Сайт перенаправляет меня на новые страницы, и Механизирует сделки со всеми заданиями на cookie и перенаправление, но я не могу получить последнюю страницу. Я использовал Firebug и снова выполнил ту же работу и увидел, что есть еще две страницы, которые мне пришлось пройти с помощью Mechanize.

Я быстро взглянул на страницы и увидел, что есть некоторый код JavaScript и HTML, но не смог понять его, потому что он не похож на обычный код страницы. Для чего эти страницы? Как они могут перенаправить на другие страницы? Что я должен сделать, чтобы передать это?

Ответы [ 3 ]

37 голосов
/ 29 апреля 2009

Если вам нужно обрабатывать страницы с помощью Javascript, попробуйте WATIR или Selenium - они управляют настоящим веб-браузером и, следовательно, могут обрабатывать любой Javascript. WATIR Classic требует либо IE, либо Firefox с установленным определенным расширением, и вы увидите, как страницы мигают на экране, как он работает.

Другим вариантом будет понимание того, что делает Javascript на странице-нарушителе, и обход его вручную, но это кажется обременительным.

14 голосов
/ 29 апреля 2009

В настоящее время Mechanize не поддерживает JavaScript. Говорят, что в конечном итоге возможности Johnson будут объединены с Mechanize, но пока этого не произойдет, у вас есть два варианта:

  1. Выясните JavaScript достаточно хорошо, чтобы понять, как пройти по этим страницам.
  2. Автоматизируйте настоящий браузер, который понимает JavaScript, используя Watir .
5 голосов
/ 29 апреля 2009

для чего эти страницы? как они могут перенаправить на другие страницы. что я должен сделать, чтобы передать это?

Иногда на этих страницах выполняется работа. Иногда JavaScript используется для предотвращения автоматического доступа, как то, что вы пытаетесь сделать :). Многие веб-сайты имеют ненужные проверки, чтобы убедиться, что у вас есть «хороший» браузер, поэтому убедитесь, что ваш user_agent настроен на что-то общее, например, IE. Иногда настройка user_agent на старый браузер позволит вам обойтись без JavaScript.

Автоматизация сайта - это весело, потому что вы должны перехитрить сайт и его разработчиков программного обеспечения, используя несколько стратегий. Как говорили другие, Watir - лучший инструмент для преодоления JavaScript на данный момент.

...