Publié le 29 May 2013
Quand on n'a pas Scrapebox ou RDDZ sous la main pour scraper les résultats de Google, il est intéressant de disposer d'outils qui pourront faire le travail malgré tout. Je vais donc vous présenter une petite méthode 'artisanale' pour récupérer les résultats de Google en quelques clics.
Charger les pages de résultats
Tout d'abord, commencez par installer sur votre navigateur Google Chrome l'extension Autopager disponible ici, que j'avais découverte via un article de 512Banque. Cette extension permet, dans le cadre d'une pagination, de charger la page suivante dès que vous arrivez à la fin de la précédente. Une sorte d'infinite scroll à activer sur demande qui vous fera économiser de nombreux clics.
Une fois l'extension activée, rendez-vous sur Google et testez la en formulant une requête. Vous devriez voir apparaître ceci en bas de page :
Vous pouvez ensuite si vous le voulez définir le nombre de pages à précharger en cliquant sur “load” et en indiquant le nombre de pages voulues.
Extraire les résultats avec Xpath Helper
Une fois que vous avez chargé toutes vos pages, l'objectif va être de rechercher dans le DOM les éléments qui nous intéressent, à savoir les liens de résultats Google. Pour cela, nous allons utiliser l'extension Xpath Helper. Celle-ci permet d'extraire le contenu du DOM en exécutant les requêtes Xpath de notre choix. Pour la télécharger, ça se passe ici. Il vous suffit de faire la combinaison de touches CTL + MAJ + X pour lancer l'extension qui s'affiche sous forme d'overlay en haut de votre navigateur.
Il ne reste plus qu'à lancer une requête Google, identifier le chemin Xpath des résultats de recherche et extraire le contenu. La chaîne Xpath est la suivante :
//h3[@class="r"]/a/@href
Vous devriez donc obtenir ce genre de résultats :
Copiez les URLs de la partie “Results” et collez les dans votre éditeur de texte favori. 99% des URLs retrouvées devrait être au bon format, cependant il se peut que vous trouviez dans votre échantillon quelques URLs sous la forme url?sa=…
Avec la regex ci-dessous, vous pourrez isoler l'URL recherchée :
Rechercher
^\/.*url=(.*)&ei=.*$
Remplacer
$1
Il ne restera plus qu'à décoder les URLs concernées. Certains éditeurs de texte tels que Sublime Text proposent des plugins d'url encode/decode qui font très bien l'affaire ;)
Bien entendu, cette méthode ne gère pas la question des proxies. Elle est donc à considérer comme une alternative légère à des solutions plus puissantes pour scraper en masse…
comments powered by Disqus