Ошибка: Failed to parse the Currency Converter XML document.
$4 730.23


Ошибка: Failed to parse the Currency Converter XML document.
$64 001.81


Ошибка: Failed to parse the Currency Converter XML document.
$1 434.43


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

С аудиограбберами знакомы все. Нам предстоит сделать свой собственный граббер информации из Интернета. Нам понадобится подопытный кролик, на роль которого я предлагаю выбрать сайт http://subscribe.ru :-) Что мы можем у них стянуть хорошего? Собственно говоря, там хорошего много, но есть кое-что, что нам и нашим посетителям может действительно пригодиться! Я имею в виду список новых рассылок, переведенных в категорию серебряных. Не секрет, что когда рассылку переводят в эту категорию, ее рейтинг (в виде количества подписчиков) непременно взлетает. Вольно или невольно мы будем содействовать этому процессу, так как посетители Вашего сайта смогут подписаться на понравившиеся им рассылки прямо, так сказать, не отходя от кассы. Для начала нам потребуется адрес, откуда мы будем грабить информацию. Он такой — http://win.subscribe.ru/catalog/latest Если кого-то не устроит кодировка, подставьте свою. По указанному адресу мы находим все переведенные в категорию серебряных рассылки. Причем список постоянно обновляется, оставаясь таким образом актуальным всегда.


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

// начало
$link = «http://win.subscribe.ru/catalog/latest»;

$file = @fopen($link, «r»);
if ($file) { $rf = fread($file, 200000); fclose($file); } else { echo «

Извините, запрошенная страница временно не доступна!

»; }

// 1
$rf = trim (chop ($rf));
$s = strpos($rf, « $rf = substr($rf, $s);

// 2
$s = strpos($rf, » $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, « — эта команда позволяет найти номер позиции указанной последовательности символов в строке, куда мы считали весь код файла. Результат помещается в переменную $s
$rf = substr($rf, $s); — жестоко обрезаем все, что находится перед этой комбинацией. В том числе и баннеры, кстати.

Этап2.

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

Этап3.

Берем, и заменяем то, что есть на то, что нам нужно. Например:
$rf = str_replace (»/catalog/«,»http://win.subscribe.ru/catalog/", $rf);
Эта строчка кода позволяет нам заменить во всей строке $rf относительные ссылки на абсолютные. Точно так же поступаем со всеми остальными ссылками, которые встречаются в коде странички. Грубо, но точно...

Этап4.

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

Результат — на экране. Если хотите посмотреть как это все работает в натуре, посетите страницу http://virtual.bresttelecom.by/komputer/ Там есть этот пример, а так же два других, но предлагаю посмотреть на них самим. На сегодня все.

Приходит очень много вопросов по теме установки и настройки РНР и apache. Честно говоря, я сам в этом деле не очень хорошо разбираюсь (в установке под win), но зато могу посоветовать к кому обратиться. http://www.design-studios.ru/php/apache/ Этот сайт и его автор, надеюсь, смогут Вам помочь в нелегком деле настройки. Там выложены самые лучшие и подробные описания, много полезной информации по теме. Пользуйтесь...

 

Интересное

Сравнение жизни с игрой
Никто не задумывался о том, что жизнь можно считать игрой? По крайней мере, всё идёт по тому же сценарию, что и игры. Когда человек рождается, он получает определённые навыки и умения, которые...
Подробнее...
Удаление и отключение...
Иногда требуется обновить или удалить драйвер какого-либо устройства, поскольку он уже не нужен либо не работает должным образом под Windows Server 2003. В этой статье будет описан процесс...
Подробнее...
Теория плагинов
Выбираю все dll из каталога с программой,загружаю каждую и пытаюсь найти в ней функцию (через api getprocaddress) с заранее определенным жестко именем (например что нибудь типа isplugin...
Подробнее...
Перенаправление stdout в...
Для перенаправления stdout в область памяти (или файл) необходимо написать небольшую конструкцию.Редирект в память или строку (std::string)
Подробнее...
Продвижение сайта в...
Описание: Главная цель владельца любого сайта состоит в привлечении на него заинтересованного посетителя. О том, как успешно достичь этой цели с минимальными затратами времени и денег, и...
Подробнее...
Войны браузеров
Браузер – это, пожалуй, наиболее часто используемая программа на домашнем ПК – не считая, разумеется, операционной системы. Неудивительно поэтому, что рынок браузеров весьма динамичен. Сегодня из...
Подробнее...
О политике защиты...
Если вы работаете в той же сфере, что и я, то наверняка должны выполнять различные требования по информационной безопасности. В зависимости от вида деятельности, такие требования могут быть...
Подробнее...
Переустановка Windows за...
<img src=«http://i-faq.ru/uploads/posts/2007-09/1189770008_1180901603_834d62a53d8f4ee88b7ff5f6dcf97.gif» align=«left» style=«border: none;» alt=«Переустановка Windows за 10 минут» />Даже у...
Подробнее...
Adobe Photoshop и Corel Draw
Уважаемые читатели, что возникает в ваших головах при словосочетании «компьютерная графика»? Конечно, у рядового пользователя сразу возникает в голове какой-нибудь Терминатор или иное детище...
Подробнее...
Dr.Web защищает от опасных...
Как известно, уже в течение длительного периода происходит спам-рассылка известного «штормового червя», маскирующегося под поздравительную открытку и детектируемого антивирусом Dr.Web как...
Подробнее...