Просмотр полной версии : Парсер гугла.
Нужен сабж, вроде такого:
http://goohackle.com/scripts/google_parser.php
Желательно, чтобы тоже выдавал капчу, когда ее сам гугл просит, а я ее вводил. Нужно поставить на сервер. Бывает такое?
<?php
/*
GET параметры:
q = запрос
c = кол-во страниц для парсинга
*/
$q = '';
if(isset($_GET['q'])) $q = $_GET['q'];
$been = '';
$colvo = 17;
if(isset($_GET['c'])) $colvo = $_GET['c'];
for($i=0; $i < $colvo*10; $i+=10)
{
$url = 'http://www.google.ru/search?hl=ru&q='.urlencode($q).'&start='.($i);
$html = file_get_contents($url);
preg_match_all("/<[Aa][ \r\n\t]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\n\r\t]*([^ \"'>\r\n\t#]+)[^>]*>/",$html,$a);
for($x=0; $x<sizeof($a[1]); $x++)
{
if(strcmp(substr($a[1][$x], 0, 4), 'http') == 0 &&
strpos($a[1][$x], '74.125.77.132')===false && strpos($a[1][$x], 'google')===false && strpos($a[1][$x], 'youtube')===false)
{
$str = urldecode($a[1][$x]);
$str = substr($str, 7);
$end = strpos($str, '/');
if($end > 0)
$str = substr($str, 0, $end);
if(strpos($been, str_replace('www.','',$str)) === false)
{
$been .= $str . '+';
echo $str.'<br>';
}
}
}
Sleep(1);
}
?>
гугль не всегда надо парсить кстати ))) чтобы получить список ссылок достаточно грамотно попросить (http://www.google.com/ie?q=google+for+dummies&hl=ru&safe=off&num=100&start=0&sa=N&filter=0)
гугль не всегда надо парсить кстати ))) чтобы получить список ссылок достаточно грамотно попросить
С таким же успехом можно нажать ctrl+j в опере. А если нужно выпарсить ссылок по ста ключам, так и будешь нажимать на гор.клав.?
С таким же успехом можно нажать ctrl+j в опере. А если нужно выпарсить ссылок по ста ключам, так и будешь нажимать на гор.клав.?
При чем тут клавиши? Тебе дали ссылку,с нужными ключами для гугла,достаточно лиш парсить результаты.С этими ключами,он просто возвращает массив ссылок,без тайтлов,что намного упрощает парсинг.
Всем спасибо, особенно devton, так можно и локально попарсить.
<?php
$query = "Macoley";
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".urlencode($query);
$body = file_get_contents($url);
echo $body;
$json = json_decode($body);
foreach ($json->responseData->results as $resultjson) {
$result_google['title']= $resultjson->title;
$result_google['url']= $resultjson->url;
$result_google['content'] = $resultjson->content;
}
print_r($result_google);
?>
Тут нету ограничений, следовательно не будет каптчи.
CyberHunter
27.01.2010, 23:27
Гы... Популярная тема на ачате.... В последнее время таких парсеров видел минимум 5.
Vlad&slav
30.01.2010, 12:07
Гы... Популярная тема на ачате.... В последнее время таких парсеров видел минимум 5.
Согласен. Мне самому нужн был :D
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot