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

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

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

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

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

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

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

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

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

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

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

Релиз Atom-M CMS 4

Автор: 0leg, в новости:

Релиз Atom-M CMS 4

Топ пользователей
Drunya
Репутация: 108
Сообщений: 3531
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1859
BAH0
Репутация: 26
Сообщений: 544
И так, из предыдущих статей мы уже знаем как посылать запросы, получать данные, формировать заголовки и даже проходить авторизацию при помощи CURL. Но один вопрос все еще открыт. Как автоматизировать процесс? Вот об этом я и хотел написать в этой части статьи. За пример возьмем обычный запрос с использованием библиотеки 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);?>

Если запрос будет удачным и страница существует, мы получим ее код HTML. Теперь для автоматизации процесса парсинга нам необходимо определиться с тем что мы вообще делаем. Давай разберем пример когда нам нужно получить список страниц с текущей страницы, например в каком нибудь каталоге статей. Тогда мы должны в ручную посмотреть код сайта, который будем парсить и определить в каком виде у него эти самые ссылки. Обычно это что-то вроде
Code:
http://target.net/stat?page=.....

тогда для нахождения этих ссылок мы можем воспользоваться регулярным выражением вроде этого

 1 
 2 
 3 
 4 
 5 
 6 
 7 
<?php //пытаемся найти ссылки на другие страницы
if (preg_match_all('#href="(http://target.net/stat?page=[\d]+)"#i'$responseData$matches)) {
     
//если есть перебираем все совпадения
     
foreach ($matches as $match) {
          
//тут посылаем запрос на все найденные страницы по очереди
     
}
}
?>

это очень упрощенный вариант. Конечно нужно позаботиться о проверке ссылок, например для того что бы не лезть на одну и ту же страницу несколько раз и так далее. Режим такого поиска может быть многоуровневым, таким образом вы можете начала парсить страницы, а за тем на этих страницах материалы. Попадая в просмотр материала, выдерать его содержимое и возможно в этом содержимом искадь еще ссылки и следовать по ним. Таким образом можно писать очень мощные парсеры.

Но смотрите, грабинг сайтов не очень хорошее занятие я лишь показал вам технологию, а как ее применять ваше личное дело. Я например использую это для автоматизации некоторых вещей. По такому же принцыпу можно писать ботов, которые будут проверять сайты, например на наличие на них ваших ссылок или что-то в этом духе. Поисковые роботы работают по такому же принцыпу, хотя и не на PHP.
Как обчистить чужой сайт - Нет проблем. ЧАСТЬ 3(АВТОМАТИЗАЦИЯ)

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

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