Extraire les 100 premiers liens des SERP Google

Extraire les 100 premiers liens des SERP GoogleIl est devenu très difficile de scrapper, d’extraire le contenu -si vous préférez – des pages de résultats du moteur de recherche Google. En anglais, on parle d’ailleurs de SERP, pour Search Engine Results Page. Il m’a fallu trouver un stratagème et, du coup, je suis passé par Startpage dont les résultats sont ceux retournés par Google. Cet excellent moteur de recherche a comme limite de ne pas comprendre les opérateurs de recherche avancés  et fort utiles comme (all)inanchor, (all)intext, (all)inurl, link, related, site notamment.

Récupérer le contenu d’un page

En PHP, comme dans bien d’autres langages de programmation, nous disposons d’un module CURL et d’instructions pour effectuer toute sorte de requête. L’un des principaux intérêts de CURL, c’est de nous permettre d’être extrêmement discrets.

La fonction ci-dessous a pour objet de récupérer le contenu d’une page à partir de son adresse. Elle retourne une chaîne de caractères qui représente le code HTML de la page.

    function curl($url)
    {
        $ua='Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:42.0) Gecko/20100101 Firefox/42.0';
        $html='';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_USERAGENT,$ua);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        $headers=Array(
          'Accept: text/plain',
          'Accept-Charset: utf-8',
          'Accept-Encoding: compress; gzip; deflate',
          'Accept-Language: fr-FR',
          'Cache-Control: no-cache',
          'Content-Type: text/plain',
          'Pragma: no-cache',
          'Referer: ',
          'User-Agent: '.$ua
        );
        curl_setopt( $ch, CURLOPT_HTTPHEADER,$headers);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt ($ch, CURLOPT_ENCODING, 'gzip,deflate');
        if(!curl_errno($ch))
        {
            $html=curl_exec($ch);
            curl_close($ch);
        }            
        return $html;
    }

Elle s’emploie comme suit :

$html=curl('https://www.dsfc.net/');

La fonction de Web Scraping

La 2e fonction a pour objet d’extraire les 100 1ers liens de la page de résultat du moteur Startpage. Utilisant les expressions régulières au travers de la fonction preg_match_all, elle utilise la fonction précédente et renvoie un tableau de liens.

    function scrap_google_serp($query)
    {
        if(preg_match_all("@<h3 class='clk'><a href='(https?://[^']+)'@isu",curl('https://startpage.com/do/search?lui=francais&language=francais&cat=web&query='.$query.'&prfh=num_of_resultsEEE100N1N'),$matches, PREG_PATTERN_ORDER))
        {
            return($matches[1]);
        }
    }

Là-encore, elle s’emploie très simplement. Le tableau $urls, dans l’exemple ci-dessous, contient  toute la liste des liens :

    $urls=scrap_google_serp('seo');
    print_r($urls);

Extraire les titres et les mots-clés des pages des urls collectées

Si vous êtes sage, je vous montrerai la suite dès demain ! ;+)

Php / , , , , , , , , , , ,

deneme bonusu veren siteler casino siteleri betdenemebonusu.com bahis siteleri Ev eşyası depolama Depolama Şehirlerarası evden eve nakliyat Evden eve nakliyat Eşya depolama yurtdışına ev taşıma Türkiye'den Almanya'ya ev taşıma zati eşya tasimaciligi uluslararasi zati eşya tasimaciligi eşya depolama şehirler arası nakliyat asansörlü nakliyat greatplay.net güvenilir online bahis siteler 2022 jetbahis Rexbet hovarda mobilbahis güncel adres sartsız Deneme Bonus sekabet maltcasino güncel adres> pinbahis100.com betduman.com olabahis.top سایت شرط بندی shartkade.com 1xbet-mobil.com beykoz evden eve nakliyat ataşehir evden eve nakliyat şişli evden eve nakliyat istanbul evden eve nakliyat
teens porn videos free sex xxx sexy videos