Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Голосование

    Какую CMS Вы предпочитаете

    AtomX
    Fapos CMS
    Drunya CMS
Последние комментарии
Автор: чайник, в новости:

Что такое API и для чего они нужны

Автор: HIshnik, в новости:

Классы в PHP для чайников

Автор: Аноним, в новости:

Написание простого вируса в блокноте

Автор: stream, в новости:

Создаем BB коды на PHP

Топ пользователей
Drunya
Репутация: 108
Сообщений: 3527
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1858
BAH0
Репутация: 26
Сообщений: 544
В этой статье реч пойдет о том, что называют граберами или парсерами на PHP. На самом деле я всего лишь раскрою технологию, которая очень проста, а превращать ее в парсер или грабер ваше дело. Как я уже сказал, все очень просто. Давай ка разберем что вообще мы хотим сделать, тогда проще будет понять все остальные телодвижения. Чаще всего нам надо получить текст с другого сайта. Для этого нам нужен исходный код страниц, который можно получить с помощью PHP. Самый простой способ это когда мы знаем адрес нужной страницы и просто получаем ее код, например так

 1 
 2 
<?php $data file_get_contents('http://target.com');?>

Это очень простой способ. Можно скормить скрипту файл с адресами и он их обшарит. В самом скрипте можно вести обработку полученного кода, например вырезать новости или заголовки. Но что делать если сайт требует авторизации или особых заголовков. Сейчас большинство сайтов имеют такую защиту(нормальных сайтов:)). Тогда на на помощь приходит curl. Че за хрень, спросят некоторые, я отвечу. Это библиотека на PHP для работы с HTTP. Она умеет выставлять заголовки, куки и еще много чего. Самый просто запрос на curle будет выглядеть примерно так

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
<?php //инициализируем сеанс
$ch curl_init('http://target.com');
//устанавливаем параметры
curl_setopt($chCURLOPT_HEADER1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
//делаем запрос
$responseData curl_exec($ch);
//закрываем сеанс
curl_close($ch);?>

Согласись, не так сложно, если учесть, что с помощью этого мы можем управлять куками и заголовками, а так же еще кучей приколов. Взять к примеру возможность не следовать редиректу:) или транслировать пост данные. К стати как передавать POST я и расскажу. Для этого наши данные должны иметь вид

Code:
переменная=значение&переменная2=значение2...

пример передачи POST данных через CURL

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
<?php //устанавливаем что будем посылать
$reguestParams 'var=value&var2=value2';
//инициализируем сеанс
$ch curl_init('http://target.com');
//устанавливаем параметры
curl_setopt($chCURLOPT_HEADER1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
//говорим что мы собираемся передавать данные и что именно передавать
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$reguestParams);
//делаем запрос
$responseData curl_exec($ch);
//закрываем сеанс
curl_close($ch);?>

Думаю все уже догадались что после всех этих манипуляций, исходный код целевой страницы находится в переменной $responseData. Ну вот мы и получили HTML код странички и теперь можем его обрабатывать.

В следующей части я расскажу как получать доступ к страницам с авторизацией и автоматизировать процесс. Ведь данная технология позволяет запустить грабер, дав ему ссылку целевого сайта и пойти заниматься своими делами, пока он добудет все необходимое:)
Как обчистить чужой сайт - Нет проблем

Теги: грабер; парсер; CURL PHP; Грабер сайтов; Как грабить контент;
Источник: Drunya
Автор: Drunya
Категория: PHP
Просмотров: 4190
Комментариев: 0

Сейчас online: 24. Зарегистрированных: 2. Гостей: 22.
-->