Грабер

Статус
В этой теме нельзя размещать новые ответы.

Acidrayne

Местный житель
Регистрация
30 Сен 2007
Сообщения
296
Реакции
20
Добрыйдень! Пытаюсь написать грабер, суть его такова:

Пользователь заходит на сайт авторизируется на нем, переходит в нужный раздел грабит контент(в том числе и скачивает файлы) и потом все это дело добавляет в базу!

Был бы очень благодарен если бы кто-либо накбросал каркас для этого дела!Я не имею ввиду написать за меня его, а хотябы разъяснения что и зачем надо делать!
 
Сейчас как раз курю php и curl, короче грабить им можно на ура, авторизация и переход на нужную страницу это http запросы, составить их можно если сниффером посмотреть какие данные требует сайт. Контент который сграбишь нужно распарсить регулярками, ну и записать в базу..
Процесс таков - на сайте заходишь браузером на те страницы что будет заходить скрипт и сниффером записываешь http запросы и ответы. Их потом повторишь с curl-ом, т.е. сделаешь имитацию браузера. В ответе http есть содержимое страницы, т.е. страницу получили. Распарсить регулярными выражениями с php, т.е. вытащить нужные части страницы и ссылки (скачать файл по ссылке то же php), и занести в базу средствами того же php.
 
С помощью curl устанавливаешь соединение и проводишь авторизацию, записываешь сессию, затем по GET запросу заходишь на нужную страницу. Как правило - на сайтах структура вывода характерная. Находишь отправные точки. Потом получаешь контент, и регуляркой вырезаешь что тебе надо.
Только ради примера
PHP:
<?
$file=file_get_contents("http://www.samsung.ru/press/news/common/22419.html"); 
$GrabStart = "<h2 class=\"article_title\">"; // от куда грабим
        $GrabEnd = "<strong>Файлы для скачивания:</strong>"; // до куда грабим
        $GrabData = eregi("$GrabStart(.*)$GrabEnd", $file, $DataPrint);
        $rezult = $DataPrint[1];

$text= strip_tags($rezult,'<p>');

echo $text; 
?>
рисунки вырезаешь регуляркой, типа
PHP:
#(<img\b[^>]*?[\s\'"]src\s*=\s*[\'"]?)([^\s>\'"]+)#
и через copy сохраняешь. Ну а с базой особых проблем быть не должно.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху