пятница, 10 октября 2008 г.

Топ сайтов в поисковике

Этот скрипт собирает данные о месте заданных сайтов в гугле.

Создаю массив запросов и массив сайтов, которые будем выделять из ответа гугла

$str_zapros_mas = array("","");
$sait_mas = array("Массив сайтов ");
Устанавливаем глубину поиска в результатах ответа гугла
$max_str=5;
Посылаем гуглу все запросы из массива, при этом каждый запрос кодируем в урл
for($i_zap = 0; $i_zap
Открываю страницы ответов на запросы, тут ньюанс, для первой странице гугла один вид строки запроса, а для пследующих - другой, учитываю это:



for($zap=0; $zap<$max_str; $zap++) { if($zap == 0) { $fp = fopen("http://www.google.ru/search?hl=ru&q=$zapros&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=0", "r"); } else { $fp = fopen("http://www.google.ru/search?complete=1&hl=ru&lr=&newwindow=1&q=$zapros&start=$zap"."0"."&sa=N", "r"); }
Читаем полученные страницы
if ($fp)
{
$mytext = "";
while (!feof($fp))
{
$mytext .= fread($fp, 9999);
}
}
else echo "Ошибка при открытии файла";
fclose($fp);
Вытаскиваем из полученных страниц, только то что нам нужно - название сайтов
preg_match_all('/(?<=class=a>)[a-zA-Z\/\s\.\-\_]*(?!http:\/\/)/', $mytext , $matches);
Но мне нужны не все сайты, а только те, что занес в массив сайтов, следовательно смотрю, есть ли такие или нет, прохожусь по всем полученным сайтам, и исключаю ненужные
while(list($key, $val) = each($matches[0])) {
for($i=0; $i
Получили, теперь множно сохринть резльтаты, или обрабатывать далее...

Закрываю все открытое

}
}
}
}
}

Комментариев нет: