Число страниц в индексе Яндекса (через XML):

Для проведения запросов нужно зарегистрироваться в xml.yandex.ru, добавить IP-адрес, с которого будет производится запрос, и подтвердить свой телефон. Тогда вы сможете делать 1000 запросов в сутки. Не забудьте сменить в настройках адрес запроса на свой уникальный. Так же, от себя, могу заметить, что точность немного страдает - показываются все страницы, проиндексированные яндексом, а не те, что учитываются в поиске, для некоторых сайтов данные могут отличатся на порядок.

<?
function yandex_pages_xml($url){
$res 0;

$url=str_replace("www.","",$url);
$wurl="www.".$url;

$query = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<request>
<query>site:
$url | site:$wurl</query>
<groupings>
<groupby attr="d" mode="deep" groups-on-page="10"  docs-in-group="1" />
</groupings>
</request>
XML;

//Адрес для совершения запроса, смотрите в настройках xml.yandex.ru
$xmlurl="http://xmlsearch.yandex.ru/xmlsearch?user=User&key=bla-bla-bla";

$curl curl_init();
curl_setopt($curl,CURLOPT_URL,$xmlurl);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,60); 
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_ENCODING,"gzip,deflate");
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,$query);
$str curl_exec($curl);
curl_close($curl);

preg_match('/<found priority="strict">(.+?)</found>/',$str,$a);
$res = !empty($a[1]) ? $a[1] : 0;
return 
$res;
}
?>

← назад