Виртуальный Брест
Главная Портал Форум Рассылки Контакт Для клиентов Статьи

 
Огромный ассортимент товаров
Огромный ассортимент товаров
 
Магазин интимных товаров
Магазин интимных товаров
 

Виртуальный хостинг - дом для вашего сайта - лучшее предложение в Бресте!


Полный список глав книги

Грабим странички


С аудиограбберами знакомы все. Нам предстоит сделать свой собственный граббер информации из Интернета. Нам понадобится подопытный кролик, на роль которого я предлагаю выбрать сайт http://subscribe.ru :-)

Что мы можем у них стянуть хорошего? Собственно говоря, там хорошего много, но есть кое-что, что нам и нашим посетителям может действительно пригодиться! Я имею в виду список новых рассылок, переведенных в категорию серебряных. Не секрет, что когда рассылку переводят в эту категорию, ее рейтинг (в виде количества подписчиков) непременно взлетает.

Вольно или невольно, мы будем содействовать этому процессу, так как посетители Вашего сайта смогут подписаться на понравившиеся им рассылки прямо, так сказать, не отходя от кассы.

Для начала нам потребуется адрес, откуда мы будем грабить информацию. Он такой - http://win.subscribe.ru/catalog/latest.

Отходя от темы, я хочу обратить Ваше внимание, что материал писался тогда, когда все указанные тут адреса были работоспособными. Но это не значит, что они останутся такими и в дальнейшем. Это не моя вина и уж точно не вина выбранного нами сайта. Просто все в жизни иногда кардинально меняется, в том числе и Интернет-адреса. В этом случае материал может служить хорошим теоретическим пособием, он все равно не теряет своего смысла.

Если кого-то не устроит кодировка, подставьте свою. По указанному адресу мы находим все переведенные в категорию серебряных рассылки. Причем список постоянно обновляется, оставаясь таким образом актуальным всегда.

Привожу весь код, пояснения к нему - дальше...

<?php
// начало
$link = "http://win.subscribe.ru/catalog/latest";
$file = @fopen($link, "r");
if ($file) {

$rf = fread($file, 200000);

fclose($file);

} else

{

echo "<h3 align=center>Извините, запрошенная страница временно не доступна!</h3>
<center>

<IMG src=http://virtual.bresttelecom.by/banner.jpg width=468 height=60 border=0 alt=\"Виртуальный Брест\">

</A><br><br>";

}

// 1
$rf = trim (chop ($rf));
$s = strpos($rf, "<!-noindex-><FORM", 0);
$rf = substr($rf, $s);

// 2
$s = strpos($rf, "<!-/noindex-><table");
$rf = substr($rf, 0, $s);

// 3
$rf = str_replace ("/catalog/","http://win.subscribe.ru/catalog/", $rf);
$rf = str_replace ("/archive/","http://win.subscribe.ru/archive/", $rf);
$rf = str_replace ("ACTION=/member/quick","ACTION=http://win.subscribe.ru/member/quick", $rf);
$rf = str_replace ("/img/money2.gif","http://win.subscribe.ru/money2.gif", $rf);
$rf = str_replace ("/img/a114.gif","http://win.subscribe.ru/af.gif", $rf);
$rf = str_replace ("/img/af.gif","http://win.subscribe.ru/af.gif", $rf);

// 4
echo $rf;
?>

А теперь поехали! В самом начале нам нужно выкачать страничку. Записываем ее адрес и открываем по нему соединение. Далее идет проверка - если соединение успешно, можно считать весь файл (не мудрствуя лукаво, указываем 200000 байт для считывания, что явно больше размера открываемого файла), если произошла ошибка открытия, предупреждаем об этом посетителя и выводим ему что угодно, например баннер.

Этап 1.
$rf = trim (chop ($rf));

Этой мудреной комбинацией мы значительно уменьшим объем обрабатываемых данных, так как уберем повторяющиеся пробелы и пробелы в конце и в начале файла. 

Потом нам нужно определиться с местом, откуда мы будем выводить информацию. Анализ кода дает нам очень эффективный механизм, и мы им непременно воспользуемся.

$s = strpos($rf, "<!-noindex-><FORM", 0);

Эта команда позволяет найти номер позиции указанной последовательности символов в строке, куда мы считали весь код файла. Результат помещается в переменную $s

$rf = substr($rf, $s);

Жестоко обрезаем все, что находится перед этой комбинацией. В том числе и баннеры, кстати.

Этап 2.

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

В результате этой обработки у нас уже есть почти все, что надо. В принципе можно было просто вывести теперь информацию на экран, но есть один нюанс, который нужно учитывать. Это - ссылки. Они не абсолютные, а относительные.

Хорошо хоть, их мало разновидностей. А в таком случае проблема решается просто.

Этап 3.

Берем, и заменяем то, что есть на то, что нам нужно. Например:
$rf = str_replace ("/catalog/","http://win.subscribe.ru/catalog/", $rf);

Эта строчка кода позволяет нам заменить во всей строке $rf относительные ссылки на абсолютные. Точно так же поступаем со всеми остальными ссылками, которые встречаются в коде странички. Грубо, но точно...

Этап 4.

Тут мы просто выводим результат на экран посетителю. А этот результат - нужный нам код HTML странички, который и будет отображен браузером. Если Вы хотите интегрировать этот код к себе, Вам скорее всего придется сделать еще одно - расправиться с таблицами, которые норовят по ширине вылезть из Вашего дизайна. Но тут уж подумайте сами.

Ничего сложного нет - находим, что за параметр отвечает за размер страницы, и заменяем это на пустую строку.

Большая просьба перед запуском скрипта убедиться в том, что все указанные адреса действительно существуют и содержат нужную информацию в нужной форме. Сайт, над которым мы работали, может изменить свою структуру и код не будет работать. Цель этого материала – показать на примере работу грабителя сайтов.

Читать еще...



Адам Фримен, Стивен Сандерсон

ASP.NET MVC 3 Framework с примерами на C# для профессионалов
ASP.NET MVC 3 Framework представляет собой последнюю версию веб-платформы ASP.NET от Microsoft. Она предлагает высокопроизводительную модель программирования, которая...

Дж. Гарретт

Веб-дизайн: книга Джесса Гарретта. Элементы опыта взаимодействия
По-настоящему эффективный сайт должен служить вашим стратегическим целям, одновременно удовлетворяя потребности ваших пользователей. Даже самый интересный контент и самые...

Василий Халявин

Похалявим в Интернете? Беслатно качай, слушай, смотри
Книга В.Халявина (Евгения Хохрякова), более известного читателям как А.Н.Плюшев, открывает новые возможности для пользователей Интернета. Его книги пользуются невероятным успехом...

Дуглас Крокфорд

JavaScript: сильные стороны
Любой язык программирования имеет свои сильные и слабые стороны, однако язык JavaScript в большей степени состоит из последних, так как был разработан в спешке и практически не...

    Информация

Главная - переход на начало
Тарифы на Российский хостинг
Правила - что можно а что нет
Заказ - сделайте это сейчас
Выбор домена - найди свое имя
Регистрация домена - купить
Оплата - варианты для всех
Панель управления Россия
Панель управления Беларусь
Вопросы и ответы - информация
Разработка сайтов - сопровождение
Виртуальный Брест - портал
Контакт - обратная связь
Наш форум - пообщаемся?

Список доменов
в которых доступна бесплатная регистрация имен при покупке хостинга, а так же открытие поч- тового ящика:

Новости Бреста:

Второй порыв теплосетей в Бресте - двенадцать многоэтажных домов и один детский сад остались без тепла
Почти тонну мёда задержали налоговики при проверке в Бресте
Зарплата в конвертах в Бресте - видео
Трое жителей Кавказа в "поисках работы" забрались прямо в лес в пограничную зону
Профилактика квартирных краж - важно
Современный животноводческий комплекс на 1500 голов строится в СПК "Королевский" Кобринского района - фото
Результаты проходящей на территории Брестской области акции "Не упусти свой шанс"
Осенний месячник по наведению порядка на земле проходит на Брестчине - важно
В Лунинецком районе в водоеме нашли автомобиль с телом внутри
ГАИ: брестчанин решил стать маршрутчиком и в пьяном состоянии вез горожан

© Виртуальный Брест 2001 - 2009 Автор проекта: Андрей Кухарчик Дизайн: Partgraphic