About Conductor

Блог > Определение позиции сайта в google, парсер выдачи гугл


25.01.2012

      При продвижении сайта, каждый seo-специалист задается вопросом, а как можно автоматизировать тот или иной процесс? На данный момент, в свободном доступе существует масса скриптов и готовых сервисов по определению позиций сайта в google, но все они заточы под русскоязычный интернет. Совсем недавно у Нас появилась задача определить точную позицию сайта по запросам в украинской версии google.com.ua и для этой цели был написан небольшой скрипт, который, мы очень надеемся, поможет многим их вас автоматизировать свою рутинную работу в интернете.
      Что нам необходимо для запуска скрипта проверки позиций сайта в гугл?
      Хостинг с поддержкой php, curl и внешним исходящим соединением.

<?php
function get_out_xml($url,$data=null,$options=null)
{
$process = curl_init($url);
curl_setopt($process, CURLOPT_HEADER,0);
if(!is_null($data))
{
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
}
if(!is_null($options))curl_setopt_array($process,$options);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($process, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt($process, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5');
curl_setopt ( $process , CURLOPT_REFERER , 'http://softmix.ru');
@curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
$return = curl_exec($process);
curl_close($process);
//parser_sleep();
return $return;
}


$url="seo-kiev.com.ua";
$key="свежие пончики";
$file561=get_out_xml("http://www.google.com.ua/search?hl=ru&biw=1280&bih=854&q=".$key."&oq=".$key."&aq=f&aqi=g10&aql=&gs_sm=e&gs_upl=6539l6994l0l7247l3l3l0l0l0l0l207l532l0.1.2l3l0");
preg_match_all("!<h3 class=\"r\"><a href=\"http://(.*?)\"!si", $file561, $num_all); // собрали все 10 ответов в массив
$count = count($num_all[1]); // посчитали кол-во результатов в массиве
for($i=0; $i<$count; $i++){
if(eregi($url, $num_all[1][$i])){$rezult=$i+1; echo" - $rezult";}else{} // прошлись по массиву и определили позицию сайта
echo 1+$i." - ".$num_all[1][$i]."<br>";
}

?>

       Учитывая этот скромный, но полноценно рабочий пример php кода, можно самому реализовать более сложную систему с любыми для Вас желаниями и возможностями. Главное, учитывать тот момент, что поисковая система google может банить Ваш ip адрес при большом количестве запросов. Будьте внимательны. Не злоупотребляйте этим при раскрутке сайта