Как написать граббер?

<?php /* Любой граббер для удобства можно разделить на ТРИ оcновных части-этапа: -получение -обработка -выдача Получение. Для того, что бы граббер нормально функционировал необходимо написать функцию для получнения страницы с удаленного хоста по заданному url, надежнее пользоваться сокетами (потому что библиотека CURL установлена не везде и не всегда, использовать file_get_contents() и комбинации implode('',file(..)) конечно тоже можно, просто сокет предоставляет побольше возможностей. Напишем функцию получния страницы по урл. */ function data($path,$host) { /* $path путь к файлу скрипта, а так же передаваемые параметры $host сграббливаемый хост (например, sasisa.ru) */ $fp = fsockopen($host, 80); if (!$fp) { die('ошибка'); } else { $out = "GET $path HTTP/1.0\r\n"; $out .= "Accept: image/gif, application/xhtml+xml, */*\r\n"; $out .= "Accept-Language: ru\r\n"; $out .= "Host: $host\r\n"; //прикинемся оперой-мини $out .= "User-Agent: Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1716; ru; U; ssr)\r\n"; $out .= "Cache-Control: no-cache\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); $headers = ""; while ($str = trim(fgets($fp))) $headers .= "$str\n"; $body = ""; while (!feof($fp)) $body .= fgets($fp); fclose($fp); } //возвращаем данные return $body; } /* Итак, функция для получения страницы готова, теперь составим функцию для обработки данных, тоесть для выреза рекламы, подмены ссылок итп */ /* function process($s) { Здесь сложно дать какие-то рекоммендации, все "грабберописание" состоит в основном в придумывании этой функции, сделаем пока что "заглушку" на этом месте return $s; } */ /* Для корректной работы грабба необходимо теперь правильно определять переменную $path, для примера давайте граббить всем известный http://wen.ru/forum/index.php пример очень характерный, потому что многие "потенциальные жертвы" грабов (загруз центры например) состоят как раз из одного файла */ //с хостом определились $host='wen.ru'; if (empty($_SERVER['QUERY_STRING'])) { //начальная позиция $path='/forum/index.php'; } else { //новые параметры $path='/forum/?'.$_SERVER['QUERY_STRING']; } /* теперь необходимо зайти на страницу форума и посмотреть ее в коде видно что ссылки выдаются так Общение для работы грабба достаточно изменить ссылку так Общение что и сделаем в функции process */ /*function process($s) { $s=str_replace('','

Скачать файл txt fb2
Добавил: TorchWood (14 янв 2009 г., 11:59)
Рейтинг: (2)
Прочитано: 20494