Помогите реализовать парсер результатов ГУГЛА

Discussion in 'PHP' started by scorpic393, 3 May 2010.

  1. scorpic393

    scorpic393 Banned

    Joined:
    5 Feb 2010
    Messages:
    59
    Likes Received:
    4
    Reputations:
    3
    Помогите плииизз реализовать парсер результатов ГУГЛА,
    т.е. я посылаю ему inurl:"blablabla" , он мне выдаёт результаты, допустем 10, по дефлоту.

    и я из этих результатов должен получить список УРЛов, на сайты с моим поисковым запросом, подскажите плиз и посоветуйсте алгоритм написание на PHP такого
     
  2. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    ищи по форуму, было много всяких вариантов
     
  3. BABBLS

    BABBLS New Member

    Joined:
    2 Sep 2007
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    зачем изобретать что то еще... если уже готовые скрипты есть?
    типа скрипт одабейс
     
  4. devton

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

    Joined:
    26 Oct 2007
    Messages:
    3,372
    Likes Received:
    5,124
    Reputations:
    48
    1 person likes this.
  5. eLWAux

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

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    модуль из одного довольно большого парсинг-движка:
    PHP:
         // itspoma, 12.04.2010
             
         
    class google
         
    {
             public 
    $pages 0;
             public 
    $try 0;
                 
             function 
    parse($q$page 0) {
                    global 
    $config;
                         
                    
    $count_inpage rand(41,59);
                    
    $offset $page*$count_inpage;
                    
    $google_page curl('http://www.google.com/search?hl=ru&q='.urlencode($q).'&start='.$offset.'&num='.$count_inpage.'&');
                    
    debug($google_page'google_page'.($page+1));
                         
                    if (
    stristr($google_page'>Sorry...<'))
                    {
                        
    sleep(10);
                        
    $page += rand(1,4);
                        
    $this->try++;
                        if (
    $this->try <= 3) {
                            return 
    $this->parse($q.' '$page);
                        }
                        return array();
                    }
                         
                    
    $links = array();
                    
    $temp_links = array();
                    
    preg_match_all('/<h3 class=r><a href="(.+?)"/is'$google_page$temp_links);
                    
    ar_push_ar($links$temp_links[1]);
                         
                    
    preg_match_all('/<a href="\/url\?q=(.+?)[&|"]+/is'$google_page$temp_links);
                    
    ar_push_ar($links$temp_links[1]);
                         
                    if (
    $config['debug'] == True)
                        echo 
    '<b><font color=red>page '.($page+1).'</b></font> '.count($links).'<br/>';
                         
                    if (
    stristr($google_page,'&amp;start='.(($page+1)*$count_inpage))) {
                         if (
    $this->pages-&& $page >= $this->pages-1) {
                             return 
    $links;
                         }
                         
    $temp_links $this->parse($q$page+1);
                         
    ar_push_ar($links$temp_links);
                    }
                         
                    return 
    $links;
             }
         }

        
    // ф-ция для добавления масива в другой масив
        
    function ar_push_ar(&$a,$b)
        {
                 foreach(
    $b as $el)
                 {
                     
    array_push($a$el);
                 }
        }
             
    юзать:
    PHP:
    $g = new google();
    $g->pages 3;
    $links $g->parse('antichat');
    var_dump$links );
     
    1 person likes this.
  6. scorpic393

    scorpic393 Banned

    Joined:
    5 Feb 2010
    Messages:
    59
    Likes Received:
    4
    Reputations:
    3
    moHze, elWaux, спасибо большое!
     
  7. apolon47

    apolon47 Banned

    Joined:
    13 Apr 2009
    Messages:
    119
    Likes Received:
    14
    Reputations:
    4
    через пару запросов от гугла капча придет, либа бан. юзай прокси
     
  8. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    :D
    наверно Вас в гугле так и забанили...