PDA

Просмотр полной версии : Парсер гугла.


budden
17.01.2010, 19:43
Нужен сабж, вроде такого:
http://goohackle.com/scripts/google_parser.php

Желательно, чтобы тоже выдавал капчу, когда ее сам гугл просит, а я ее вводил. Нужно поставить на сервер. Бывает такое?

WNZRS
17.01.2010, 19:53
<?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);
}
?>

devton
17.01.2010, 20:04
гугль не всегда надо парсить кстати ))) чтобы получить список ссылок достаточно грамотно попросить (http://www.google.com/ie?q=google+for+dummies&hl=ru&safe=off&num=100&start=0&sa=N&filter=0)

Komyak
17.01.2010, 21:47
гугль не всегда надо парсить кстати ))) чтобы получить список ссылок достаточно грамотно попросить
С таким же успехом можно нажать ctrl+j в опере. А если нужно выпарсить ссылок по ста ключам, так и будешь нажимать на гор.клав.?

m0Hze
17.01.2010, 22:55
С таким же успехом можно нажать ctrl+j в опере. А если нужно выпарсить ссылок по ста ключам, так и будешь нажимать на гор.клав.?
При чем тут клавиши? Тебе дали ссылку,с нужными ключами для гугла,достаточно лиш парсить результаты.С этими ключами,он просто возвращает массив ссылок,без тайтлов,что намного упрощает парсинг.

budden
19.01.2010, 17:14
Всем спасибо, особенно devton, так можно и локально попарсить.

Solker
20.01.2010, 03:11
<?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