Для одного моего проекта как то раз понадобился скрипт граббера контента. А точнее мне нужна была самостоятельно обновляющаяся программа телепередач на неделю по 6-8 каналам как минимум. Ранее мне приходилось вручную по пятницам, а иногда при запаздывании обновлений и по субботам, копировать на сервер присланные файлы с программами телеканалов. Позже когда бесплатная подписка закончилась, встал вопрос об автоматизации этого процесса.
И как раз на одном из сайтов в интернете я нашёл описание простого граббера контента в виде учебного пособия, то есть просто в виде кода для изучения принципа работы. И решил опробовать его. Ранее мне как то попадались уже готовые скрипты грабберов, но намного более сложные и не все из них корректно работали. Правда и функций у них было поболее. Например один из самых первых который я тестировал имеет функцию кэширования, что очень немаловажно. Но для получения 7 страничек с программой телепередач навороченный граббер в принципе не нужен.
Немного повозившись с настройкой граббера на Денвере я получил результат который меня на все 100% удовлетворил и я разместил его на один из моих сайтов. Добавил к нему правила преобразования ссылок с помощью mod_rewrite через htaccess и уже больше месяца как забыл о возне с ручным обновлением программы.
Итак вот собственно код самого скрипта с комментариями
$content = file_get_contents("урл страницы с которой грабим содержание");$pos = strpos($content, " сюда пишем кусочек html кода или слово из страницы с которого начинается вывод контента к Вам на сайт");
/*Отрезаем все, что идет до нужной нам позиции (функция substr в данном случае принимает два параметра: строка для обработки и //номер позиции. Функция вернет строку, НАЧИНАЯ с указанной позиции) */
$content = substr($content, $pos);
// Точно таким же образом находим позицию второй строки
$pos = strpos($content, "здесь пишем кусочек html кода или слово на котором заканчивается вывод на Ваш сайт");
// Отрезаем нужное количество символов от нулевого
$content = substr($content, 0, $pos);
// выводим полученную строку.
echo $content;
?>
Как видите очень простой код. Жаль что я не помню адрес сайта на котором его нашёл. Если автор объявится, с удовольствием размещу ссылку на него. Ну а для более полного понятия как этот скрипт работает попробую объяснить подробнее. Например в моём случае у меня был адрес страницы с программой передач на неделю по 7 каналам с разбивкой по дням недели. Страница получалась очень обьёмистой и долго грузилась (вставлял её инклюдингом). Так вот я нашёл в коде страницы уникальные куски кода с текстом которые более на странице не повторялись. Например программа на понедельник начиналась так и заканчивалась Именно это я и вставил в переменную $pos в начале кода и в конце. Для остальных дней недели повторил то же самое.
Комментариев 0