Dans cette seconde partie, je vais entrer un peu plus dans le détail de l’utilisation de Goutte pour récupérer les données d’un site de mon choix. Pour nos test ici, le crawl va se faire sur mon propre site neru.io

Si vous n’avez pas lu la première partie, c’est ici : Web Scrapping avec Goutte – Partie 1

La première chose à faire va être de mettre en place l’autoload, importer le namespace de Goutte et instancier un nouveau client.

PHP

La prochaine étape va consister à envoyer une requète via l’objet $client. Ce dernier renvoi une instance de crawler qui est celle que nous utilisons pour appliquer nos filtrer.

PHP

Sur la page des vetements que vais crawler, il y a des boites pour chaque produit. Chaque produit a sa catégorie (.product-cat), son nom (.product-title) et son prix (.price).

Je vais me concentrer sur la sélection de tous les .product-title de la page et les récupérer tous un par un. Pour cela je vais mettre en place ce code :

PHP

Vous avez remarqué la méthode each ()?

La méthode each () me permet d’itérer sur la sélection actuelle (liste de nœuds) lorsqu’elle contient plusieurs nœuds.
Comme je l’ai mentionné ci-dessus, je sélectionne chacun des titres (.product-title) pour les parcourir. La méthode accepte une instance d’une fonction anonyme, fais une boucle sur la liste de nœuds actuelle, puis passe un nœud à chaque itération ce qui permet d’accéder au nœud actuel ($ node) à chaque fermeture de la boucle.

PHP

Maintenant j’extrais le texte de chaque nœud

PHP

Je récupère le contenu textuel du nœud en appelant la méthode text().
La prochaine étape est ensuite de l’afficher avec un print par exemple et voila !

Maintenant que vous avez les bases, il ne vous reste plus qu’à faire vos propres scripts. Tout est possible.

Pour plus d’informations, je vous conseille de lire les documentations de DomCrawler, CssSelector et Goutte .

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.