Lorsque nous créons une liste d'éléments pour un site web, cette liste peut parfois inclure plusieurs éléments "publicitaires" non désirés.
Prenons l'exemple de Yelp : la boucle générée automatiquement peut inclure tous les résultats sponsorisés dont nous n'avons pas besoin.
Que faire alors si vous ne voulez scraper que les éléments qui ne sont pas des publicités ?
Une façon pratique de le faire est de supprimer les lignes de données indésirables en cliquant sur l'icône de la corbeille sous la colonne Action.
Cependant, pour que cela fonctionne pour chaque élément dont nous n'avons pas besoin, nous devons modifier l'XPath pour l'élément de la boucle afin qu'il ne localise que les éléments non publicitaires.
Vérifiez le code source des éléments dans les DevTools de Chrome, vous verrez qu'il n'y a pas de différences majeures entre les éléments publicitaires et non publicitaires.
Nous devons donc restreindre notre sélection à l'aide de XPath. Il est temps de faire un quiz sur XPath !
Vous pouvez utiliser le lien suivant pour suivre : https://www.yelp.com/search?find_desc=restaurant&find_loc=Los+Angeles%2C+CA+90001&ns=1
Un moyen simple de restreindre votre sélection est d'ajouter des conditions à votre XPath :
(1) Les données dont nous avons besoin sont répertoriées dans la section "Tous les résultats", c'est donc là que nous commençons notre sélection.
Chaque page ne contient que dix résultats, nous devons donc terminer notre sélection après avoir obtenu les dix premiers résultats.
Le XPath final sera donc:
//h2[text()='Tous les résultats']/ancestor::li/following::li[position()<11]