Depuis votre machine ou un serveur avec proxy ou sans, ils visitent les pages une à une d'un site en y récoltent certaines données. Ces données sont orientées metrics seo. Elles peuvent vous aider dès lors que vous travailler sur les facteurs SEO internes à votre site. Si une donnée vous interpelle, il vous permet également de vérifier la page crawlée dans un cache local.

Voici donc un crawler comme beaucoup d'autres exceptés que celui-ci est libre et éditable aisément avec quelques bases de PHP (même le référenceur @dsampaolo y arrive). Dans cet article, je détaillerai comment l'installer (facile) et l'utiliser de façon basique ou plus avancée.

Installer votre Crawler

A condition d'avoir installé sur sa machine PHP et composer (ce n'est pas long, et c'est très pratique si vous jouer un peu en PHP), l'installation se passe en une ligne de commande.

Ah non, j'ai windows ! Pas d'inquiétude, c'est tout aussi simple que sur les systèmes UNIX, il te faut juste ouvrir le programme cmd après avoir installé composer.

La commande :

composer create-project piedweb/seo-pocket-crawler

Pour pouvoir l'utiliser, il faut ensuite vous déplacer dans le dossier juste créé :

cd seo-pocket-crawler

Utiliser votre crawler

L'utilisation est tout aussi simple que l'installation. Petit exemple à taper dans votre console préférée :

bin/crawler --start https://piedweb.com

Ca y est ! Le crawl est parti et dans quelques instants, votre console vous affichera où le fichier de résultats à été enregistré.

Le principal fichier créé est au format CSV et s'ouvre dans n'importe quel tableur (le séparateur est une virgule).

Dans le même dossier, vous trouverez le répertoire links dans lequel se trouve deux types de fichier : From_#id et To_#id. Ces deux types de fichiers correspondent respectivement aux liens émis (internes/externes) et aux liens reçus (internes) par la page hash.

Vous trouverez également dans le dossier cache, un enregistrement de chacune des pages html crawlées.

En fonction de la vitesse de chargement de votre site et et de son nombre de page accessible via les liens, vous aurez les résultats en quelques secondes ou en plusieurs minutes. Pour un temps de chargement moyen, comptez 10K pages en 30 minutes avec une temporisation entre chaque requêtes (de 0,1s). PiedWeb.com m'a pris 2,1s à crawler (pour 11 Urls trouvées, avec 0,1s de tempo entre chaque requête).

D'autres articles suivront sur l'exploitation de ces données (vous pouvez me suivre sur twitter @Robind4 ou via le flux RSS). La puissance d'un outil en ligne de commande permettra notamment d'aborder :

Utilisations Avancées

Les familiers des lignes de commandes auront peut-être déjà regardé du codé de bin/crawler -h. Cette commande vous indique comment régler votre crawler suivant vos envies. Vous les différents arguments possibles :

--limit 5 : permet de régler la profondeur maximale dans laquelle s'engagera votre crawler.
Par défaut 5.

--ignore /home/user/project/seo/piedweb.com/virtual-robots.txt Par défaut, le robots.txt n'est pas respecté (as Google do). Vous pouvez donc y introduire l'url de votre robots.txt ou encore un robots.txt personnalisé pour ne crawler qu'une partie de votre site par exemple. Ce paramètre accepte directement le texte d'un robots.txt, son URL ou son chemin.

--user-agent="GoogleBot" : permet d'utiliser votre propre user-agent. Utile si vous avez un site qui ne sert que les pages en cache pour certains ua.

--verbose 0 : permet de voir ou de ne pas voir travailler votre crawler dans la console.

--wait 10000 : en micro-secondes, le temps à attendre entre chaque requête. Vous permettra d'éviter de surcharger votre serveur. Par défaut 0,1s.

--cache-method 2 : détermine comment seront enregistrées les pages crawlées (0: pas d'enregistrement, 2: le nom du fichier correspondra à l'id de l'Uri, 1: le nom du fichier correspondra à l'Uri).

--id 1901181542-piedweb.com : permet de continuer un crawl précédement lancé (et arrêté, maux aucun check si le crawl court encore). Ignore tout les autres arguments.

--restart 1 : permet de relancer un crawl précédent (chargera juste la configuration). S'utilise avec --id. Valeurs possibles : 1 = Recommencer depuis start, 2 = Idem et si une page en cache existe, l'utiliser.

Extraire tout les liens externes depuis un crawl

Une commande peut en cacher une autre ! La suivante vous permettra d'extraire tout les liens externes depuis un crawl effectué ou en cours. Il est possible d'obtenir les URLs complètes ou seulement le domaine avec le drapeau --host :

bin/external --id 201902823-piedweb.com

Le résultat apparaîtra directement sous une liste. Cette liste est triée par nombre de liens trouvés.

Tips: A vous les domaines expirés depuis le site juste crawlé de votre concurrent

S'approprier ce crawler

Vous souhaitez modifier les données récoltées. Editez les fichiers src/Url.php et src/Crawler.php. Vous trouverez dans ces deux fichiers un code simple facile à modifier même avec un niveau très basique en PHP. Intéressez vous particulièrement à la fonction Crawler::harvest.

Si vous souhaitez aller plus loin, la logique se situe plutôt dans un autre paquet : PiedWeb\UrlHarvester.

Foire aux questions sur son utilisation

A quoi corespondent les chiffres de la colonne indexable ?
Il vous informe sur la possibilité ou non pour google d'indexer la page. La réponse est sous forme de chiffre pour des questions de performance. 0 équivaut à « Google doit pouvoir indexer cette page. ». Vous trouverez le détails des autres chiffres entre la ligne 10 et et 19 de PiedWeb\UrlHarvester\Indexable.

Vous avez une autre question ? Utiliser twitter, github ou un mail (pbagnpg@cvrqjro.pbz).

Liste de Crawlers

Si celui-ci ne vous convient pas, voici une liste non exhaustive de Crawler à installer (software) ou à utiliser directement (service).


Page mise à jour le 29/06/2019 par Robin.