{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Samurai * 0.28
[автор] (5 фев 2014, 18:22) [0/0] [0] [отв] [спам] [под] +1 | -1

Грабберами в народе называют серверные скрипты, предназначенные для получения данных с различных серверов и встраивания их в свои страницы. В инете есть куча примеров RSS-грабберов, извлекающих тексты с новостных лент, но мне лично нужен не какой-то RSS, которым я ни разу в жизни не пользовался, а полноценный скрипт, который легко настроить для извлечения любой нужной мне информации с любой из доступных в сети страниц.
Так что эта небольшая статья - как раз пример написания граббера на языке PHP.
Задача состоит, собственно, из 3 этапов.
1. Получение данных с нужного нам URL
Для этого в PHP существует несколько возможностей:
Стандартная функция fopen, служащая для открытия файла
Применять ее не очень удобно, так как нельзя контролировать время соединения, получать ответы ошибок сервера и т.д. Кроме того, она может быть запрещена на хостинге через http. Тем не менее, вот пример откуда-то. Здесь мы парсим выдачу популярного сайта bash.org:

<?php
$url=\'http://www.bash.org.ru/best\';
$file = Удалён ($url, \'r\');
if ($file==false) print \'<p>Не могу открыть сайт \'.$url.\'!\';
else {
$contents = fread ($file, 100000);
$contents = preg_match_all(\'|<div>(.+)</div>|U\',$contents,$frazes);
for($i=0;$i<5;$i++){
if ($i<>5) echo \"<hr>\".$frazes[1][$i].\"rn<hr>\";
}
fclose ($file);
}
?>

Популярный вариант этого же подхода еще проще -

<?php
$file = file_get_contents(\'http://www.bash.org.ru/best\');
$file = preg_match_all(\'|<div>(.+)</div>|U\',$file,$frazes);
for($i=0;$i<11;$i++){
if ($i<>5) echo \"<hr>\".$frazes[1][$i].\"rn<hr>\";
}
?>

или же
$str=file_get_contents(\"http://google.com/\"*;
(по сути, file_get_contents - это fopen, fread, fclose одной командой)

2.
BARRAcUDA * 20.99
(5 фев 2014, 18:24) [0/0] [0] [отв] [спам] [под] +1 | -1

Samurai, хотя бы рерайт чтоли сделал бы чем копировать


Я ВиАйПи
3. (5 фев 2014, 18:28) [0/0] [0] [отв] [спам] [под] +1 | -1

*

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 0
Скачать тему | Файлы темы | Фильтр сообщений