Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |  |
Мощная вещь... Спасибо! :) 06.05.05 06:17 Число просмотров: 1653
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
<web building>
|
Эмулятор популярного браузера для хождения по ссылкам, реализованный на 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:
$Response = $UserAgent->request($Request);
if($Response->is_success) # успешно выполненный запрос
{
# получаем информацию, возвращенную сервером
$text = $Response->content;
}
Для работы с 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
|
|
 |  |  |  |
Мощная вещь... Спасибо! :) 06.05.05 06:17
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
|
|