Comment créer un crawler web simple en PHP?
Friday, September 03, 2021Lectures 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.
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
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
Posts les plus populaires
- 1 . Scraping seloger sans codage pour extraire les annonces/agences immobilières
- 2 . Google scraping| 4 façons d'extraire les résultats de recherche
- 3 . 9 Web Scrapers Gratuits à ne pas manquer en 2023
- 4 . Créer un scraper pour agrégateur d'offres d'emploi en quelques minutes
- 5 . Blog posts scraping facile avec un Web Scraper
Posts par sujet