Парсер гугла.

Discussion in 'PHP' started by guestXXXXX, 17 Jan 2010.

  1. guestXXXXX

    guestXXXXX Banned

    Joined:
    26 Jul 2008
    Messages:
    65
    Likes Received:
    50
    Reputations:
    3
    del.

    del.
     
    #1 guestXXXXX, 17 Jan 2010
    Last edited: 22 Apr 2011
  2. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    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], 04), 'http') == && 
                
    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($str7);
                    
    $end strpos($str'/');
                    if(
    $end 0)
                        
    $str substr($str0$end);
                    if(
    strpos($beenstr_replace('www.','',$str)) === false)
                    {
                        
    $been .= $str '+';
                        echo 
    $str.'<br>';
                    }
                }
            }
            
    Sleep(1);
        }
    ?>
     
    1 person likes this.
  3. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,372
    Likes Received:
    5,124
    Reputations:
    48
    гугль не всегда надо парсить кстати ))) чтобы получить список ссылок достаточно грамотно попросить
     
    2 people like this.
  4. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    202
    Likes Received:
    18
    Reputations:
    1
    С таким же успехом можно нажать ctrl+j в опере. А если нужно выпарсить ссылок по ста ключам, так и будешь нажимать на гор.клав.?
     
  5. Solker

    Solker Elder - Старейшина

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    PHP:
    <?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);

    ?>
    Тут нету ограничений, следовательно не будет каптчи.
     
    2 people like this.
  6. CyberHunter

    CyberHunter Active Member

    Joined:
    6 Jan 2010
    Messages:
    601
    Likes Received:
    116
    Reputations:
    37
    Гы... Популярная тема на ачате.... В последнее время таких парсеров видел минимум 5.
     
  7. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    Согласен. Мне самому нужн был :D