[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.

Laisser une 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 le GooglePolitique de confidentialité etConditions d'utilisation appliquer.