Как я могу очистить экран от HTML-результата нетривиального пользовательского сценария

Я хочу иметь возможность получить HTML для страницы, которая, если бы я делал это в интерактивном режиме в браузере, потребовала бы нескольких действий и загрузок страницы: 1. Перейти на домашнюю страницу 2. Введите текст в форму входа и отправьте форму ( post) 3. Сообщение будет проходить через различные перенаправления и использование набора фреймов.

Файлы cookie адаптируются на протяжении всего этого процесса.

В браузере после отправки я просто получаю страницу.

Но чтобы сделать это с помощью curl (в PHP или чем-то еще), wget или AN. Другой низкоуровневой технологии, управление файлами cookie, перенаправлениями и наборами фреймов становится довольно сложной задачей и очень сильно привязывает мой скрипт к веб-сайту (что делает его очень восприимчивым даже к небольшие изменения на веб-сайте, с которого я очищаюсь.)

Может ли кто-нибудь предложить способ сделать это?

Я уже рассматривал Crowbar и PhantomJS и Lynx (с параметрами cmd_log / cmd_script), но объединяю все вместе, чтобы точно имитировать то, что я сделать в Firefox или Chrome сложно.

(Кроме того, целевому веб-сайту может быть даже полезно / необходимо подумать, что этот сценарий является Firefox или Chrome или "настоящим" браузером)


person Peter Howe    schedule 09.11.2011    source источник
comment
На каком языке программирования вы в идеале хотели бы работать? Я могу обновить свой ответ небольшим образцом для вашего предпочтительного языка.   -  person Patrice Neff    schedule 09.11.2011
comment
Вы можете посмотреть на Mechanize, доступный для perl, python и ruby   -  person pguardiario    schedule 10.11.2011


Ответы (3)


Один из способов сделать это - использовать Selenium RC. Хотя он обычно используется для тестирования, по сути, это просто служба удаленного управления браузером.

Используйте этот веб-сайт в качестве отправной точки: http://seleniumhq.org/projects/remote-control/ < / а>

person Patrice Neff    schedule 09.11.2011

Вы можете использовать irobot в irobotsoft, чтобы записать робота и воспроизвести его.

Если вы предпочитаете низкоуровневый контроль, вы можете использовать интерфейс HTQL python, см. http://htql.net/htql-python-manual.pdf. Он позволяет вам получить доступ к браузеру на основе IE из Python.

person seagulf    schedule 11.11.2011

Используйте такой инструмент, как Firebug, чтобы проверить, какие заголовки отправляются на веб-сайт для входа в систему, а затем воспроизведите это точно в своем коде.

Или просто войдите в систему с помощью своего браузера, а затем повторно используйте файл cookie в своем коде.

person hoju    schedule 14.11.2011