Эмулятор популярного браузера для хождения по ссылкам, реализованный на PHP или Perl — очень-очень нужен...03.05.05 20:29 Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 03.05.05 20:44 Количество правок: 5
Тема: есть хостер. У него работает Perl, PHP.
Проблема: надо получить документ по URL, сделать квинтэссенцию пирожков из него (если сервер прислал), выделить множество содержащихся в документе ссылок (желательно, по регулярным выражениям), и "походить" по этим ссылкам...
Если требуют пирожки обратно, корректно их отдавать ;-)
И так, чтобы на удалённом сервере (куда "идут" из скрипта) была полная иллюзия, что сёрфят по выбранным ссылкам реальныим браузерами.
Маленькие намёточки или кусочки кода — и я долго буду биться в истерике от счастья... ж-)
Заранее всем БОЛЬШОЕ спасибо!
В LWP все для этого готово03.05.05 21:39 Автор: dl <Dmitry Leonov>
# создание
$UserAgent = new LWP::UserAgent;
# задание строки с именем "броузера"
$UserAgent->agent("MoZilla 9.0 (non-compatible; MSIE 9.3; PalmOS)");
# работа через прокси
$UserAgent->proxy('http', $proxy);
HTTP::Request отвечает за формирование запроса серверу, HTTP::Headers
-- за формирование заголовков запроса:
# формируем заголовки
$Headers = new HTTP::Headers(Referer => $referer);
# формируем запрос
$Request = new HTTP::Request(GET => $url, $Headers);
Взаимодействие с сервером осуществляется функцией request, возвращающей
объект HTTP::Response:
Для работы с cookie используется модуль HTTP::Cookie и функция
cookie_jar, сообщающая нашему виртуальному броузеру о необходимости
использовать объект Cookie:
my $СookieJar = new HTTP::Cookies;
$UserAgent->cookie_jar($CookieJar);
Для сохранения и загрузки cookie используются функции
$CookieJar->load($cookiefilename);
$CookieJar->save($cookiefilename);
Можно формировать их значения и вручную с помощью функции set_cookie.
Спасибо огромное, подскажи ещё ссылочку на оригинальную статью, откуда «цитировал», pls... :-)05.05.05 16:03 Автор: HandleX <Александр М.> Статус: The Elderman