. PHP парсинг — парсер яндекс каталога | Makarou.com - когда сайты превращаются в бизнес

PHP парсинг — парсер яндекс каталога

PHP парсинг - парсер яндекс каталогаПривет, друзья! Сегодня я хочу вам показать, как написать скрипт который будет проверять наличие сайта в Яндекс каталоге или говоря проще – парсер яндекс каталога. Для всего этого мы будем пользоваться стандартными функциями PHP.

И так, приступим!

Первым делом мы будем получать содержимое страницы, которое формируется исходя из результата поиска в ЯК. Для этого мы будем пользоваться функцией — file_get_contents. В качестве параметра, которое мы будем передавать функции, используется ссылка на поиск в ЯК с нашим доменом.

Пример получения содержимого страницы:

$url = "makarou.com";
$file = file_get_contents('http://search.yaca.yandex.ru/yandsearch?text='.$url.'&rpt=rs2');

$url – домен нашего сайта.

После того как мы получили содержимое страницы, нам нужно распарсить нужное нам значение и получить вывод: есть сайт в ЯК или нет его там совсем. Для этого мы воспользуемся регулярным выражением.

Пример регулярного выражения:


preg_match('!нигде\sне\sвстречается!ism',$file);

Как видно из примера мы ищем в содержимом страницы строку – нигде не встречается.

Вот теперь мы можем соединить весь код воедино и поглядеть, что из этого получилось.

Полный код – парсер яндекс каталога:

$url="makarou.com";
$file = file_get_contents('http://search.yaca.yandex.ru/yandsearch?text='.$url.'&rpt=rs2');
if (preg_match('!нигде\sне\sвстречается!ism',$file)){
echo 'Сайта <b>'.$url.'</b> нет в каталоге';
}else{
echo 'Сайт <b>'.$url.'</b> есть в каталоге';
}

Посмотреть — demo.

Как видно из примера, если регулярное выражение находит строку – нигде не встречается, то мы выводим надпись “сайта нет в каталоге” и если надпись не находит, то соответственно выводим надпись “сайт есть в каталоге”.

Этот способ подходит для проверки максимум 5 сайтов одновременно. Но чтобы решить проблему массовой проверки сайтов, я решил написать новый парсер, который может делать одиночную и массовую проверку.

Полный код — новый парсер яндекс каталога:

$url="makarou.com";
$xml=simplexml_load_file("http://bar-navig.yandex.ru/u?ver=2&url=http://".$url."/&show=1");
if(!$xml->topics->topic['title'] and !$xml->topics->topic['url']){
echo 'Сайта <b>'.$url.'</b> нет в каталоге';
}else{
echo 'Сайт <b>'.$url.'</b> есть в каталоге';
}

Посмотреть - demo.

Вот и всё дорогие друзья, надеюсь, вам окажется это полезным, ну или вашим друзьям. ;)

php

Понравился пост? добавь его к себе в закладки:
Хочешь быть всегда в курсе обновлений блога? подписывайся через: