Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   SЕО - тонкости, методы раскрутки (https://forum.antichat.xyz/forumdisplay.php?f=116)
-   -   Чем пропарсить выдачу Google? (https://forum.antichat.xyz/showthread.php?t=106269)

/Montana 14.02.2009 15:23

Чем пропарсить выдачу Google?
 
Чем пропарсить выдачу Google? Нужно выдрать URL'ы, по определённым запросам, немного штук 200-300. Есть ли готовые решения, желательно скрипт.

CrazyStudentS_Mi}{ 14.02.2009 15:59

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.li nks[i]+'<br>\n';}newwind=window.open('about:blank','resu lt','width=600,top=100,left=100,scrollbars=1');new wind.document.write(mass);

devton 15.02.2009 09:26

http://webdos.freezoka.com/files/htmllerz.zip

Chode 15.02.2009 18:26

AGGRESS Parser

Doktor_radosti 16.02.2009 10:58

Рабочий allsubmitter, зануленная Аура (там правда больше 1000 за один подход не спарсишь).

M4g 20.02.2009 15:29

Пожалуйста, пример парсера для пхпбб (смотрите код, чтобы оптимизировать под иной движок)
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!=$page=100*$page '';
        
$result='';
        
$site='www.google.com';
        
path='/ie?hl=en&num=100&start='.$page.'&lr=&q='.urlencode(trim($query));
        
$fp = @fsockopen($site80$errno$errstr30);    
            
$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) > 
            {
                    
$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($fp1024);
        }
    
$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 ($fpLOCK_EX);
            
fputs($fp,"\n".$different[$i]);
            
flock ($fpLOCK_UN);
            
fclose($fp);    
            }
        }
    
sleep(rand(13,19));
    if(
count($result)<100) break;
    }

?>



Время: 14:21