Extraire des données pour le SEO avec iMacros

Extraire des données pour le SEO avec iMacros

Quand on veut attaquer une requête, on a besoin d’indicateurs de faisabilité. Si une requête est très concurrentielle, ça ne sert à rien d’aller se casser les dents dessus si on ne se donne pas suffisamment de levier pour ranker.

Parmi les indicateurs qu’on peut exploiter, le fameux « allintitle:KW ». Le résultat retourné permet de connaitre le nombre de pages dont la balise title contient la requête visée.

Mais comment faire si on doit ressortir cet indicateur pour 300 requêtes ? On passe des heures sur Excel pour fournir un joli tableau au client ? On sous-traite et on casse sa marge ? Non ! On utilise simplement le petit script qui va suivre :)

[toc]

Gagner du temps avec iMacros

Pour automatiser la récolte des résultats de « allintitle:KW » dans un fichier CSV, on va utiliser un plug-in compatible avec Firefox et chrome, appelé iMacros. Vous pouvez le télécharger en cliquant ici, pour Firefox, et pour chrome, c’est .

Quand vous avez installé le plug-in, jetez un coup d’œil à votre dossier utilisateur sur votre session Windows (désolé pour les gens qui sont sous Mac, il va falloir vous adapter) : vous devez normalement y trouver un dossier « iMacros », qui contiendra trois sous dossier :

  • Datasources
  • Downloads
  • Macros

« Datasources », c’est le dossier qui contiendra notre fichier CSV source, « Downloads », c’est là qu’on trouvera le résultat des extractions, et « Macros », c’est simplement le dossier qui contiendra notre script.

Utiliser le keyword planner de Adwords pour récolter les mots-clés

Pour récolter une liste de mots-clés associés à la requête que vous auditez, vous pouvez utiliser le keyword planner de Google Adwords. La première chose qu’on va faire, c’est renseigner la requête qu’on va auditer, grâce au menu « Rechercher de nouveaux mots clés et obtenir des données sur le volume de recherche ».

Dans notre cas, on va faire un test sur la requête « agence SEO ».

On rentre l'expression clé qui va nous servir de base de travail

Google va alors nous sortir une liste de mots-clés associés à cette requête, avec divers indicateurs. Pour l’instant, on s’en fout, la seule chose qui compte, c’est le bouton télécharger pour récupérer ces données au format CSV. On récupère le fichier, et ensuite on va faire un petit tour sur Excel…

Traiter les données sur Excel

La chose qu’on va faire, c’est supprimer les colonnes qui ne nous intéressent pas. À savoir, on peut supprimer :

  • Ad group
  • Currency
  • Impr. Share
  • Organic impr. Share
  • Organic avg. position
  • In account ?
  • In plan ?
  • Extracted From

Puis, on va créer un tableau en gardant une colonne vide à droite : on insère un tableau en gardant bien coché « mon tableau comporte des en-têtes », puis on nomme la colonne vide tout à droite « allintitle ».

Ensuite, à vous de voir ce que vous conservez comme mot-clé, parce qu’il y aura toujours un peu de mots-clés totalement inutiles. Vous pouvez maintenant déconnecter votre compte Google, parce qu’on va quand même pinger GG en mode violent, et il va pas trop aimer.

Protéger son adresse IP avec VyprVPN

Si vous utilisez pas mal de plugin sur votre navigateur, comme RDS SEO toolbar ou autre plugin assimilé, à chaque fois que vous faites une recherche sur Google, votre browser envoie pas mal de requêtes supplémentaires. Et ça, Google, il aime pas. Pour filtrer le trafic des robots, il peut être amené à vous envoyer un captcha à résoudre. Et ici, on va vraiment lui faire du mal, donc pensez à protéger votre IP courante grâce à un proxy par exemple.

Perso, je suis sur VyprVPN. Ca me permet d’épargner un peu mon IP « standard » quand je procède à ce genre de recherches.

vyprvpn

Créer la liste d’adresses à scraper

Pour l’instant, on a juste une liste de mots-clés. Si on veut transformer ça en liste d’adresses à scrapper, on doit ajouter “https://www.google.fr/?client=firefox-b#q=allintitle:” et quelque chose à chaque ligne. Vous noterez ici que la variable « client » dans mon exemple correspond au profil de mon navigateur (Firefox), à vous d’adapter en fonction du browser que vous utilisez.

Pour créer cette liste d’URL, on va simplement utiliser Notepad++ et une expression régulière. D’abord, copiez toute la colonne « keyword » de votre tableau Excel. Collez-la sur Notepad ++. Ensuite, faites « CTRL + H » pour entrer en mode « chercher / remplacer ».

Cliquez bien sur le petit bouton radio « Expression régulière » situé tout en bas de la boite de dialogue, sinon, la suite ne marchera pas.

Ce qu’on va chercher ici, c’est « toutes les lignes », « tout leur contenu », et on va remplacer ça par “https://www.google.fr/?client=votre-user-agent#q=allintitle:mon-mot-clé”.

Sur le champ « Recherche », entrez :

^(.+)$

Sur le champ « Remplacer par », entrez :

https://www.google.fr/?client=firefox-b#q=allintitle:1

Le petit chercher/remplacer qui va bien sous notepad ++

N’oubliez pas de remplacer « firefox-b » par le user-agent de votre navigateur (faites une recherche vite fait sur Google et regardez ce que vous avez dans la variable « client » dans l’URL).

Cliquez sur « Remplacer tout », et c’est presque terminé : il faut encore remplacer les espaces par des « + ». Sélectionnez un espace entre deux mots, faites CTRL + H, et dans le champ « Remplacer par », mettez « + », puis cliquez sur « Remplacer tout ».

On a terminé le travail sur Notepad++. Maintenant, on va placer tout ça dans un nouveau fichier CSV, qu’on va enregistrer dans notre sous-dossier « Datasources », dans notre dossier « iMacros » (sur votre compte utilisateur). On passe maintenant à la récolte !

Scraper comme un ouf !

La partie la plus jouissive : on va collecter nos 300 résultats en quelques minutes, en mode violent, en mode « j’ai pas de temps à perdre avec ces conneries ». Pour ça, on va créer une nouvelle macro sur iMacros. Ouvrez un fichier texte, et collez le script suivant :

VERSION BUILD=8810214 RECORDER=FX
SET !DATASOURCE agenceseo.csv
SET !DATASOURCE_COLUMNS 1
SET !TIMEOUT_STEP 0
SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
SET !LOOP 1
SET rndSecWait EVAL("3 + Math.floor(Math.random()*5)")
TAB T=1
URL GOTO={{!COL1}}
TAG POS=1 TYPE=DIV ATTR=ID:resultStats EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=+{{!NOW:ddmmyyyy}}.csv
WAIT SECONDS={{rndSecWait}}

Ici, vous trouverez bien le fichier CSV dans lequel on a collé notre liste d’URL à scrapper à la deuxième ligne, celle qui dit « SET !DATASOURCE agenceseo.csv », à la ligne 2. Adaptez cette ligne en fonction du nom que vous avez donné à votre fichier CSV dans le dossier « Datasources ». Enregistrez le script au format .iim, dans le dossier “iMacros/Macros”.

Vous êtes maintenant prêt pour violer Google et vous épargner des heures de travail ingrat !

Evil SEO

Un petit complément d’explication sur la ligne 8, qui permet de définir un laps de temps entre chaque opération : Google détecte les scraps de la SERP. Si on scrap toujours de façon très régulière, il ne va pas aimer, et va vous envoyer un captcha. Ça n’est pas un problème, mais, du coup, vous devez rester à côté de la machine le temps que les données soient extraites. C’est pas bien long, mais c’est nécessaire.

Si vous n’avez pas envie de résoudre les captchas, il faudra mettre un laps de temps largement supérieur à celui qu’on indiqué à la ligne huit (ici, on a défini un laps de temps aléatoire entre trois et huit secondes).

Notez également à la ligne 11, la directive pour extraire le contenu au format texte de la div qui a l’ID « resultStats ». Ça devrait vous inspirer pour adapter le script et faire pleins d’autres choses…

Bref, enregistrez votre script dans le dossier « iMacros/Macros » (dans mon exemple, je l’ai appelé « agenceseo.iim ») ouvrez votre onglet iMacros sur votre navigateur, trouvez le script que vous avez enregistré dans le dossier « Macros », puis indiquez le nombre de recherches que vous voulez effectuer dans l’onglet « Jouer », section « Rejouer la Macro », en définissant le champ « Max ».

N’oubliez pas d’adapter le script en fonction du nom de votre fichier CSV, et du délai que vous souhaitez mettre entre chaque recherche :)

iMacros SEO

Cliquez sur « Jouer (Répéter) », et patientez le temps que le script fasse son taf :)

Si un Captcha pop, vous avez quelques secondes pour le résoudre. Si vous ne le faites pas, vous aurez une ligne vide dans votre fichier de destination.

Bref, quand le script a fini de tourner, ouvrez votre dossier « iMacros/Downloads » : vous y trouverez un fichier CSV qui s’appellera « extractddmmyyyy.csv ». C’est lui qui contiendra les résultats collectés. Vous n’avez plus qu’à copier tous les résultats, et à les coller dans votre colonne « Allintitle » sur le tout premier fichier Excel qu’on a créé dans le tuto.

Vous pouvez mettre un petit coup de nettoyage pour que ce soit plus joli, et vous avez maintenant de quoi ausculter avec précision le nombre de recherche mensuelle, l’indice de compétition, les enchères suggérées, et le nombre de pages qui sont optimisées avec le mot-clé dans la balise title, pour la niche que vous souhaitez attaquer :)

La version “Pro” du script, avec rotation de proxy

Suite au commentaire de Cédric Guérin, Consultant SEO à Rennes, je me suis dit qu’on pouvait certainement améliorer un peu le script. En effet, ici, sur un gros volume, les requêtes de type “allintitle:KW” génèrent fatalement un captcha (y a vraiment que les SEO qui utilisent ce genre d’opérateur, et Dieu sait que Google ne nous porte pas dans son coeur).

La solution, c’est de mettre en place une rotation de proxies pour changer d’IP à chaque fois qu’on va effectuer une requête. Vous pouvez donc lâcher le VPN si c’est la solution que vous utilisiez, ici, on va avoir beaucoup plus d’IP disponibles :)

Bref, la nouvelle macro est ci-dessous :

VERSION BUILD=8810214 RECORDER=FX
SET !DATASOURCE agenceseo.csv
SET !DATASOURCE_COLUMNS 2
SET !TIMEOUT_STEP 0
SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
SET !LOOP 1
SET rndSecWait EVAL("3 + Math.floor(Math.random()*5)")
TAB T=1
PROXY ADDRESS={{!COL2}}
WAIT SECONDS=5
URL GOTO={{!COL1}}
TAG POS=1 TYPE=DIV ATTR=ID:resultStats EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=+{{!NOW:ddmmyyyy}}.csv
WAIT SECONDS={{rndSecWait}}

Un bémol toutefois : il va falloir utiliser des proxies privés ou semi-privés.

Récupérer des proxies

Je récupère les miens chez Buyproxies, ils ne sont pas trop chers et font bien le taf. Vous recevez les proxies au format suivant “ip.ip.ip.ip:port:user:mot-de-passe”. Le souci, c’est que iMacros n’accepte pas ce format. On va donc “whitelister” notre IP chez Buyproxies, grâce à l’onglet prévu pour ça, ainsi plus besoin de préciser le couple user:mot-de-passe :)

Ajoutez votre IP à la white list pour être dispensé de login/mdp

Mettre à jour le fichier CSV dans Datasources

Une fois que vous avez ajouté votre IP à la whitelist, vous pouvez éditer la macro, et ajouter le couple ip:port de vos proxies au fichier CSV du dossier “Datasources”. En gros, on ajoute simplement une colonne, dans laquelle il faudra faire quelques copier-coller pour assigner un proxy différent à chaque URL scrappée.

Attention, votre fichier CSV a probablement le point-virgule comme séparateur, et ici, il faut un format Américain. Donc, une fois votre colonne avec les proxies complétées, fermez Excel, ré-ouvrez le fichier CSV avec Notepad++, et remplacez tous les “points-virgule” par des “virgules”. Et après, y a plus qu’à faire tourner la macro :)

La macro de vérif (bonus)

Ci-dessous, un petit script supplémentaire pour vérifier que votre rotation de proxies est bien effective :

VERSION BUILD=8810214 RECORDER=FX
SET !DATASOURCE checkip.csv
SET !DATASOURCE_COLUMNS 2
SET !TIMEOUT_STEP 0
SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
SET !LOOP 1
TAB T=1
PROXY ADDRESS={{!COL2}}
WAIT SECONDS=5
URL GOTO={{!COL1}}
WAIT SECONDS=4

Pas grand chose de compliqué ici, on scrappe juste http://whatismyipaddress.com/fr/ en jouant la rotation de proxies pour être sur que ça fonctionne bien.

Et ci-dessous, le gros bouton pour télécharger les fichiers qui m’ont servi pour le tuto :)

Télécharger les fichiers sources

Charles Annoni

Charles Annoni

Développeur Front-End et Formateur

Charles Annoni accompagne les entreprises dans leur développement sur le web depuis 2008. Il est également formateur dans l’enseignement supérieur.