[Crawler] Récupérer en PHP, les informations minimales d’un site internet en PHP

understand-how-does-web-crawler-work

 

Salut à tous,

 

Je ne serais pas très très long aujourd'hui, mais j'aimerais vous partager ce petit bout de code, que j'ai réalisé pour répondre à un besoin simple, mais nécessaire.

 

Avec ce petit bout de code, vous aurez la possibilité de récupérer assez simplement les données  d'un site internet :

  • Nom du site
  • Description du site
  • Icone du site
  • Nom de domaine

 

Pour cela, rien de plus simple :

function getShortInfoSite($url){
		  $dom    = new DOMDocument;
		  $datas  = array();
		  //Extraction du domaine
		  if (!preg_match("/^(.*)\:\/\/([0-9A-Za-z^_\.-]{0,20}?)\//", $url.'/', $domain)) return -1;
		  $url = $domain[1].'://'.$domain[2];
		  //Recuperation du contenu de la page d'accueil
		  try {
					$html = @file_get_contents($url);
					@$dom->loadHTML($html);
					$finder = new DomXPath($dom);
					//Recuperation des differents elements : favicon, title, description ...
					$icons  = $finder->query("//link[contains(@rel, 'ico')]");
					$desc   = $finder->query("//meta[contains(@name, 'description')]");
					$titles = $finder->query("//title");
					$datas['url']           = $url;
					$datas['icon']          = @$icons[0]->getAttribute('href');
					$datas['title']         = @$titles[0]->nodeValue;
					$datas['domain']        = $domain[1];
					$datas['description']   = @$desc[0]->getAttribute('content');
					return $datas;
		  }
		  catch(Exception $e){
				  return $e;
		  }
}

 

Vous incluez cette fonction PHP dans votre code, puis vous l'appelez de cette manière :

getShortInfoSite("http://dyrk.org/indexi22.php")

 

Voilà, vous pourrez désormais récupérer un joli tableau dans ce goût-là :

Capture

 

 

2 comments

  • Bonjour,

    Merci pour cet article,  est qu’il existe une solution , pour « scraper ou crawler » :  titre du site, ulr, description,  (balise ) et plus dur
    image ( 1 ou deux) email de contact , adresse facebook , tel  … d’un site internet via un moteur de recherche avec requête différente à chaque fois

    Peux être plutôt partir sur un développement qui « scrap / crawler » : titre du site, ulr, description,  (balise ) ,
    avec des requêtes :  » fabricant poele de masse »,  « fabricant poele pellet » …
    100 1er résultat

    et ensuite un autre dev : qui  « scrap / crawle »,  les 100 sites :
    1 ou deux images,
    email de contact ,
    url facebook ,
    tel  etc …

    est ce qu’à votre avis c ‘est possible, si oui avec  quelle technologie,  ou piste de développement ?

    Si ce n est pas clair jai un screenshot

    Merci d avance à vous

     

  • Patrick Lefebvre

    La première réponse à cette question, c’est un métamoteur de recherche.
    Par exemple Qwant ou Duckduckgo. L’intérêt d’un métamoteur c’est qu’il va « casser » le rang attribué par les moteurs (et qui privilégie leurs sponsors), et mettre les moteurs de recherche en concurrence.
    Tu vas obtenir une page de résultats.

    A toi de l’enregistrer sur ta machine, puis de la parser (l’analyser par un programme) pour en tirer les informations que tu désires, et, par exemple, les afficher.

    Il y a bien sûr des programmes commerciaux qui le font. Tout a un prix.

Répondre à Patrick Lefebvre Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site est protégé par reCAPTCHA et Google Politique de confidentialité et Conditions d'utilisation appliquer.