undefined
Blog > Web Scraping > Post

Comment créer un crawler web simple en PHP?

Friday, September 03, 2021

Lectures conseillées:

Les meilleurs langages de programmation pour le Web Crawler : PHP, Python ou Node.js?

Comment scraper des sites Web sans être bloqué en 5 minutes?

 

Sommaire

Web Crawler en PhP

L'exploration du Web pour les non-codeurs 

 

Avant de commencer, je vais faire un rapide résumé du web scraping. Le web scraping consiste à extraire des informations à partir du code HTML d'une page web. Le web scraping avec PHP ne fait pas de différence avec d'autres langages informatiques ou outils de web scraping, comme Octoparse.

Cet article illustre comment un débutant peut construire un simple robot d'exploration du Web en PHP. Si vous envisagez d'apprendre PHP et de l'utiliser pour le web scraping, suivez les étapes ci-dessous.

 

untitled-design-10

 

Crawler Web en PhP 

Étape 1.

Ajoutez un champ de saisie et un bouton d'envoi à la page Web. Nous pouvons saisir l'adresse de la page Web dans le champ de saisie. 

Étape 2.

Les expressions régulières sont nécessaires pour extraire des données.

 

function preg_substr($start, $end, $str) // Regular expression      

{      

    $temp =preg_split($start, $str);      

    $content = preg_split($end, $temp[1]);      

    return $content[0];      

}    

Étape 3.

String Split est nécessaire lors de l'extraction de données.

 

function str_substr($start, $end, $str) // string split       

{      

    $temp = explode($start, $str, 2);      

    $content = explode($end, $temp[1], 2);      

    return $content[0];      

}

 

Étape 4.

Ajouter une fonction pour sauvegarder le contenu de l'extraction :

function writelog($str)

{

  @unlink("log.txt");

  $open=fopen("log.txt","a" );

  fwrite($open,$str);

  fclose($open);

Lorsque le contenu que nous avons extrait est incompatible avec ce qui s'affiche dans le navigateur, nous n'avons pas pu trouver les expressions régulières correctes. Ici, nous pouvons ouvrir le fichier .txt enregistré pour trouver la chaîne correcte.

function writelog($str)

{

@unlink("log.txt");

$open=fopen("log.txt","a" );

fwrite($open,$str);

fclose($open);

}

Étape 5.

Une fonction serait également nécessaire si vous avez besoin de prendre des photos.

function getImage($url, $filename='', $dirName, $fileType, $type=0)

   {

    if($url == ''){return false;}

    //get the default file name

    $defaultFileName = basename($url);

    //file type

    $suffix = substr(strrchr($url,'.'), 1);

    if(!in_array($suffix, $fileType)){

        return false;

    }

    //set the file name

    $filename = $filename == '' ? time().rand(0,9).'.'.$suffix : $defaultFileName;

          

    //get remote file resource

    if($type){

        $ch = curl_init();

        $timeout = 5;

        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

        $file = curl_exec($ch);

        curl_close($ch);

    }else{

        ob_start();

        readfile($url);

        $file = ob_get_contents();

        ob_end_clean();

    }

    //set file path

    $dirName = $dirName.'/'.date('Y', time()).'/'.date('m', time()).'/'.date('d',time()).'/';

    if(!file_exists($dirName)){

        mkdir($dirName, 0777, true);

    }

    //save file

    $res = fopen($dirName.$filename,'a');

    fwrite($res,$file);

    fclose($res);

    return $dirName.$filename;

    }

Étape 6.

Nous allons écrire le code pour l'extraction. Prenons l'exemple d'une page web d'Amazon. Entrez un lien vers un produit.   

if($_POST[‘URL’]){

//---------------------example-------------------

$str = file_get_contents($_POST[‘URL’]);

$str = mb_convert_encoding($str, ‘utf-8’,’iso-8859-1’);

writelog($str);

//echo $str;

echo(‘Title:’ . Preg_substr(‘/<span id= “btAsinTitle”[^>}*>/’,’/<Vspan>/$str));

echo(‘<br/>’);

$imgurl=str_substr(‘var imageSrc = “’,’”’,$str);

echo ‘<img src=”’.getImage($imgurl,”,’img’ array(‘jpg’));  

 

Ensuite, nous pouvons voir ce que nous extrayons. Voici la capture d'écran.

 

 

 

 

Web Crawling pour les non-codeurs

 

Vous n'avez plus besoin de coder si vous disposez d'un web crawler automatique.

Comme indiqué précédemment, PHP n'est qu'un outil utilisé pour créer un robot d'exploration du Web. Les langages informatiques, comme Python et JavaScript, sont également de bons outils pour ceux qui les maîtrisent. Aujourd'hui, avec le développement de la technologie de web scraping, de plus en plus d'outils de web scraping, tels que Octoparse, Beautiful Soup, Import.io et Parsehub, apparaissent en multitude. Ils simplifient le processus de création d'un crawler web.

Par exemple, Octoparse Web Scraping Templates permet à tout un chacun d'extraire des données à l'aide de modèles préétablis. Plus besoin de configurer un crawler, il suffit d'entrer les mots clés à rechercher pour obtenir des données instantanément.

    

 

 

Artículo en español: Crear un Simple Web Crawler en PHP
También puede leer artículos de web scraping en el Website Oficial

 

En Savoir Plus

 

9 Défis de Web Scraping que Vous Devriez Connaître

Data Mining: 10 compétences indispensables pour l'exploration des données

25 Façons de Développer Vos Activités avec le Web Scraping

10 Meilleur Web Scraper Open Source en 2020

RegEx : comment extraire tous les numéros de téléphone des chaînes de caractères

 

 

Nous utilisons des cookies pour améliorer votre expérience de navigation. Découvrez comment nous utilisons les cookies et comment vous pouvez les contrôler en cliquant sur les paramètres des cookies. Si vous continuez à utiliser ce site, vous consentez à notre utilisation des cookies.
Accepter Rejeter