Как использовать Mechanize для обработки JavaScript?

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

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

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


person user96960    schedule 29.04.2009    source источник
comment
Почему бы вам не поместить javascript на сайт вставки, например pastie.org, и не разместить здесь ссылку?   -  person method    schedule 29.04.2009


Ответы (3)


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

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

person millimoose    schedule 29.04.2009
comment
Спасибо всем. watir сделали именно то, что я хотел :) он выглядит отлично, переносит меня в рубин :) в первый раз сайт, который я пытался получить, разозлился на меня из-за user_agent, но когда я установил его в firefox, проблема возникла ушел. скалы stackoverflow! мне здесь нравится :) - person user96960; 30.04.2009
comment
@millimoose можно ли скрыть браузер при выполнении скрипта в WATIR? - person Volatil3; 13.10.2014
comment
Ого, нить некромантии. Я больше не знаю, и держу пари, что нет - и, в любом случае, это другой вопрос, чем тот, который задал OP, поэтому вы можете задать его отдельно на SO, чтобы у кого-то еще был шанс ответить. Я бы также подумал о PhantomJS, это безголовый (т.е. без пользовательского интерфейса) автомат WebKit. Он работает достаточно хорошо, но в прошлый раз, когда я хотел использовать его для чего-то, асинхронный API сделал то, что мне нужно, слишком запутанным, поэтому я остановился на Selenium. - person millimoose; 15.10.2014

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

  1. Достаточно хорошо разобраться в JavaScript, чтобы понять, как перемещаться по этим страницам.
  2. Автоматизируйте реальный браузер, который поддерживает JavaScript, используя Watir.
person Pesto    schedule 29.04.2009
comment
Джонсон - мертвый проект. Есть замена? - person zhon; 04.01.2018

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

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

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

person method    schedule 29.04.2009