Perl: Соскребание HTML с сайта, прошедшего проверку подлинности - PullRequest
4 голосов
/ 10 октября 2008

Несмотря на то, что HTML Scraping довольно хорошо документирован из того, что я вижу, и я понимаю концепцию и реализацию этого, что является лучшим методом для удаления из контента, который спрятан за формами аутентификации. Я имею в виду удаление содержимого, к которому у меня есть законный доступ, поэтому мне нужен метод автоматической отправки данных для входа.

Все, что я могу придумать, это настроить прокси-сервер, захватить пропускную способность при ручном входе в систему, а затем настроить скрипт, чтобы подделать эту пропускную способность как часть процесса очистки HTML. Что касается языка, то, скорее всего, это будет сделано в Perl.

Кто-нибудь имел опыт с этим, или просто общая мысль?

Редактировать На этот вопрос ответили до , но с .NET. В то время как он проверяет, как я думаю, что это должно быть сделано, есть ли у кого-нибудь сценарий Perl для этого?

Ответы [ 4 ]

4 голосов
/ 10 октября 2008

Ознакомьтесь с библиотекой Perl WWW :: Mechanize - она ​​основана на LWP и предоставляет инструменты для выполнения именно того взаимодействия, на которое вы ссылаетесь, и может поддерживать состояние с помощью файлов cookie, пока вы о нем !

WWW :: Mechanize, или мех для краткости, помогает автоматизировать взаимодействие с Веб-сайт. Он поддерживает выполнение последовательность выборок страниц, включая следующие ссылки и отправка форм. Каждая извлеченная страница анализируется и ее ссылки и формы извлечены. Ссылка или форма может быть выбрана, поля формы может быть заполнена и следующая страница может быть неправдоподобным. Мех также хранит историю URL-адреса, которые вы посетили, которые могут быть запрашивается и возвращается.

3 голосов
/ 10 октября 2008

Модуль LWP в Perl должен дать вам то, что вы ищете.

Здесь есть хорошая статья , в которой говорится о включении файлов cookie и других методов аутентификации, чтобы получить авторизованный вход в систему и очистить экран, чтобы вы оказались за стеной входа.

2 голосов
/ 10 октября 2008

Есть 2 типа аутентификации, которые регулярно используются. HTTP-аутентификация и аутентификация на основе форм.

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

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

Конечно, есть и такие сайты, как stackoverflow, которые используют внешнюю аутентификацию, такую ​​как openid, или saml для аутентификации. С ними сложнее справиться на слом. Обычно вы хотите найти библиотеку для их обработки.

0 голосов
/ 10 октября 2008

Да, вы можете использовать другие библиотеки для своего языка, если он отличается от asp.net.

Например, в Java вы можете использовать httpclient или httpunit (который даже обрабатывает некоторый основной Javascript).

...