Чем пропарсить выдачу Google? Нужно выдрать URL'ы, по определённым запросам, немного штук 200-300. Есть ли готовые решения, желательно скрипт.
hrefer если скрипт то вот http://www.google.com/ie?q=&num=100&hl=ru&start=0&sa=N&filter=0 это поиск это потом тыкаем ссылки извлечь java script:all=document.links.length;mass='<b>Всего ссылок на странице:\u0020'+all+'</b><br><br>\n';for(i=0;i<all;i++){mass+=document.links+'<br>\n';}newwind=window.open('about:blank','result','width=600,top=100,left=100,scrollbars=1');newwind.document.write(mass);
Пожалуйста, пример парсера для пхпбб (смотрите код, чтобы оптимизировать под иной движок) PHP: <?php /*Google parser v.0.1 by M4g, icq 884888*/ $log_file = 'log.dat'; $zapros = 'powered by phpbb'; set_time_limit (0); //ignore_user_abort(true); function setcookies($headers) { $headers=explode("\r\n",$headers); for($x=0; $x<count($headers); $x++) { if(preg_match('/^set-cookie:[\s]+([^=]+)=([^;]+)/i', $headers[$x],$match)) return array($match[1] => urldecode($match[2])); } } function parse_serp($engine, $query,$page=0) { global $cookies; switch (strtolower($engine)) { case 'google': $page!=0 ? $page=100*$page : ''; $result=''; $site='www.google.com'; path='/ie?hl=en&num=100&start='.$page.'&lr=&q='.urlencode(trim($query)); $fp = @fsockopen($site, 80, $errno, $errstr, 30); $out = "GET $path HTTP/1.1\r\n"; $out .= "Host: $site\r\n"; $out .= "Content-type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: Close\r\n"; $out .= "User-Agent: Opera/9.60 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n"; if ( count($cookies) > 0 ) { $cookie_str = 'Cookie: '; foreach ( $cookies as $cookieKey => $cookieVal ) { $cookie_str .= $cookieKey."=".urlencode($cookieVal)."; "; } $out .= substr($cookie_str,0,-2)."\r\n"; } $out .= "Referer: http://www.google.com/ie\r\n\r\n"; @fwrite($fp, $out); while (!@feof($fp)) { $result .= @fread($fp, 1024); } $cookies=setcookies($result); flush(); print $query."<br/>\n"; $pattern = '/<a title="(.+)" href=(.+)>(.+)<\/a>/isU'; if(preg_match_all($pattern, $result, $matches)) { for ($i=0; $i<count($matches[0]); $i++) { $link = $matches[2][$i]; $link=trim($link); $serp[] = $link; } } break; } return $serp; } for($page=0;$page<11;$page++) { $result = parse_serp('google',$zapros,$page); $different=array(); for($i=0;$i<count($result);$i++) { preg_match("/(.+)\/(viewtopic|login|\s)(.+)/i",$result[$i],$arra[$i]); $different[]=$arra[$i][1]; } $different=array_unique($different); for($i=0;$i<count($different);$i++) { if(!empty($different[$i])) { $fp = fopen($log_file,"a"); flock ($fp, LOCK_EX); fputs($fp,"\n".$different[$i]); flock ($fp, LOCK_UN); fclose($fp); } } sleep(rand(13,19)); if(count($result)<100) break; } ?>