Google Black Day – scraper avec excel et google spreadsheet 3


Sommaire

Madeline
Sur twitter

Le 25 avril dernier avait lieu le premier Google Black Day, organisé et animé par des membres du forum scripts-seo.com. Cette première fut plutôt réussie alors qu’elle s’est organisée au dernier moment. En gros, la date a été fixée 5 jours avant l’événement, ce qui laissait assez peu de temps pour en faire la promo. Mais au final, pas mal de monde a pu se libérer le samedi pour assister aux ateliers/conférences et les retours sont assez positifs.

google-black-day

 

Il s’agissait pour ma part de la première formation que je donnais à l’extérieur. Habituellement, seuls mes collègues avaient ce « privilège ». Soyez indulgents 🙂

Scraper avec Excel et google spreadsheet

Pourquoi scraper ?

Scraper, récolter des informations, peut s’avérer très utile et pas seulement dans une optique black hat.

Lorsqu’on crawle un site, on scrape les title, les h1, les meta descriptions, etc. On peut donc scraper pour vérifier si tous les éléments sont bien en place.

Ca peut etre utile pour voir si les tags de google analytics sont bien implémentés, voir s’il ne manque pas de balises title, s’il n’y a pas de souci avec les balises canoniques, etc.

On peut également scraper les résultats de google pour construire un outil de positionnement, ou pour trouver des plans backlinks partenariats.

On peut aussi scraper google actu pour avoir des idées de contenu.

Bref, on peut scraper tout et n’importe quoi pour faire ce qu’on veut.

Comment scraper ?

Les machines de guerre

Il existe différents logiciels dédiés au scraping. Le plus connu est sûrement scrapebox, le couteau suisse du référenceur (que je n’utilise pas…ou très peu).

On peut également noter RDDZ, qui permet de construire ses propres moteurs.

Et sur scripts-seo et d’autres forums, on remarque vite que gscraper a le vent en poupe en ce moment.

L’avantage de ces outils est qu’ils sont très puissants.

L’inconvénient est qu’il faut acheter des proxys pour les utiliser (sinon c’est comme une voiture sans essence), et ces outils sont payants (mais vite rentabilisés). Il faut parfois un temps de prise en main mais la communauté est assez active, donc on trouve pas mal d’infos dessus.

Les faciles à utiliser

Il existe de plus en plus d’applications qui permettent de scraper sans coder. Il suffit de sélectionner avec la souris les éléments que l’on souhaite, et l’application s’occupe de transformer ça en requête et d’importer tous les éléments.

  • Kimonolabs
  • Import.io
  • webscraper.io

Les scraper façons ikea : construis-le toi même

RDDZ a une fonction pour construire son propre scraper mais pour ceux qui aiment coder encore plus, il y a scrapy, en python.

Excel et Google spreadsheet : 2 outils qui peuvent scraper

Qui n’a pas excel sous la main ? Généralement ceux qui sont sur mac ou ceux qui ne veulent pas payer microsoft et se sont tournés vers {libre|open} office. Pour ceux là, il y a google spreadhseet, grauit, dans la suite google drive.

Excel et google spreadsheet sont 2 tableurs dont on dispose souvent. Et ils peuvent se transformer en scraper de dépannage, ou bien en scraper de débutant (après, vous pouvez toujours vous tourner vers les autres outils cités précédemment).

Scraper avec Excel ? c’est possible grâce à SEO Tools for Excel

Pour scraper avec excel, ce n’est pas natif, il faut installer un module complémentaire : SEO Tools for Excel. Ce module a une version gratuite avec laquelle on peut déjà beaucoup s’amuser.

Avec SEO Tools For Excel, on peut récupérer tout un tas d’information on site (title, meta description, etc.) et offsite (pagerank, nombre de pages indexées, date du cache, etc.). On peut connecter son compte majesticseo, google anlaytics, etc. pour obtenir d’autres indicateurs. Bref, SEO Tools for Excel devrait être installé sur tous les ordinateurs d’un SEO travaillant sous windows.

Il peut maintenant se transformer en spider/crawler. Il possède des scrapers pré programmés.

Mais on peut également tout faire à la main et récupérer ce que l’on souhaite avec la fonction xpathonurl.

Il faut cependant faire attention à quelques points : lorsque vous scrapper avec excel, vous utiliser votre propre adresse IP. Si vous scrapez google, s’il y a un peu trop de fonctions ou de requêtes à exécuter, vous pouvez vite vous faire bloquer et avoir des captchas. Ce serait bête de griller votre IP sur Google.

Donc je le répète, scraper avec excel, c’est bien pour dépanner, pour traiter des petits volumes.

Google Spreadsheet : l’alternative à Excel

Avec Google Spreadsheet, vous aurez les mêmes limites : on reste dans des petits volume.

Il y a quelques avantages à utiliser google spreadsheet plutôt qu’excel : il n’y a rien d’autre à installer, il y a une fonction native : importxml.

Deuxième point positif : vous utiliserez l’IP de google. Cela peut également se transformer en inconvénient : certains sites bloquent l’IP de google, lorsque le user agent ne correspond pas à GoogleBot. Et là, le user agent n’est pas google bot mais GoogleDocs; apps-spreadsheets;+http://docs.google.com.

Troisième point positif : il n’y a pas de limite (sauf celles du captchas). Avant, on ne pouvait utilser que 50 fois la fonction importxml par feuille de calcul. Depuis l’apparition des nouvelles feuilles de calcul, cette limite a sauté.

L’inconvénient de google spreadsheet, c’est que c’est un outil google et pour les paranos ou ceux qui cherchent des spots backlinks, ce n’est pas forcément judicieux de donner toutes les infos à google.

Google semble aussi limiter le scrap sur google, j’ai pas mal de fonctions qui ne marchent plus depuis quelques mois.

Mais comme je l’ai dit en introduction, on peut scraper pour plein d’autres choses que google.

 Le Xpath, le chaînon indispensable pour scraper

Lorsqu’on souhaite utiliser excel et spreadsheet pour scraper, il faut faire appel aux fonctions XpathOnUrl ou ImportXml. Ces 2 fonctions ont (presque) la même tête, il faut 2 éléments :

là où on scrape, ce que l’on scrape. Autrement dit, il faut une URL et une requête Xpath.

Le Xpath permet de faire des requêtes pour localiser un élément. A première vue, c’est moche. Mais c’est super pratique.

Pour obtenir un chemin xpath, il ne faut pas forcément coder.

Obtenir une requête xpath

Pour faire une requête en xpath, il faut simplément faire un clic droit, inspecter l’élément et « copy xpath » ou « copier le chemin xpath ».

Si par exemple vous êtes sur une page wikipedia et vous souhaitez avoir les titres d’un article. Si vous cliquez droit sur un titre secondaire, inspecter, copier le xpath, vous obtiendrez sûrement quelque chose du style :

/html/body/div[3]/div[3]/div[4]/h2[1]/span[1]

On lit cette requête en partant de la fin. Cela pourrait se traduire en :

– je prends la 1ere balise span (span[1]), qui est incluse dans la première balise h2 (h2[1]), qui est incluse dans la 4e div, qui est incluse dans la 3e div, qui est incluse dans la 3e div, qui est dans la balise body, qui est dans la balise html.

On descend le fil.

On a le chemin de l’élément. Mais cela correspond à un seul élément.

Parfois, on a aussi une requête de ce type :

//*[@id= »Syntaxe_et_s.C3.A9mantique »]

Cela se traduit par : je prends tous les éléments qui ont un id égal à Syntaxe_et_s.C3.A9mantique (l’étoile devrait vous rappeler les expressions régulières, non ?).

Quelques notions de xpath

Pour s’en sortir, il est conseillé d’avoir quelques bases en xpath. Cela permet de :

  • faire ses propres requêtes
  • corriger les requêtes données (car des fois ca ne marche pas)
  • simplifier la requête

Et surtout, cela permet de comprendre la logique. Et dès qu’on comprend le fonctionnement d’un outil, on peut tout de suite en sortir des meilleurs résultats.

Si on reprends les exemples précédents, on remarque que :

La requête commence par / ou //

/ => un seul élément

// => tous les éléments

Donc si vous souhaitez avoir tous les liens d’une page vous ferez la requête.

(faux suspense pour celles et ceux qui souhaitent chercher)

//a

Obtenir l’attribut d’une balise : @attribut

Si vous connaissez un peu le html, vous savez qu’une balise peut avoir des attributs. Par exemple, un attribut class, ou id, ou rel, etc.

Si vous ne souhaitez pas avoir les ancres mais les url des liens, vous allez donc demander l’attribut href des balises a.

Donc votre requête se transformera en : //a/@href

Si vous voulez plutôt que les balises a qui sont en nofollow, vous ferez la requête :

(c’est un peu plus compliqué)

//a[@rel=’nofollow’]

Là vous n’aurez que les ancres et si vous souhaitez les liens :

//a[@rel=’nofollow’]/@href

Vous demandez l’attribut href des balises a qui ont un attribut rel=’nofollow’.

Et si vous voulez les liens qui ne sont pas en nofollow, je vous laisse chercher.

Si vous souhaitez un indice, pensez que ce sont des liens qui n’ont pas d’attribut rel=’nofollow’.

Il suffit de traduire ça en xpath.

Allez, encore un indice, en xpath, on peut utiliser « not » (//a[not(…)]).

Bref, on dérive dans des trucs un peu plus complexes alors que connaitre //, / et @ est déjà amplement suffisant pour avoir des résultats.

 Les requêtes Xpath sur Excel et google spreadsheet : importxml et XpathOnUrl

Sur excel ou spreadsheet, il faut utiliser les fonctions xpathonurl et importxm pour faire des requêtes xpath et extraire ce que l’on souhaite.

Les fonctions pour lister les liens (ancres) d’une page

Allons droit au but :

=importxml(url; « //a »).

Et sur excel :

=xpathonurl(url; « //a »)

Attention, cela listera toutes les ancres de liens présents sur une page. Mais ca ne donnera pas forcément le lien eh lui même, ni le nombre.

Sur excel, surtout sur les anciennes versions, vous aurez peut-être un seul lien. Pour avoir tous les liens, ou plutôt toutes les ancres, il y a plusieurs méthodes mais je vous conseille d’essayer la fonction : dump(xpathonurl(url; »//a »)).

Requête pour voir les attributs dans excel et google spreadsheet

Si vous souhaitez tester l’extraction des liens et pas seulement des ancres dans excel ou google spreadsheet, voici les fonctions :

=importxml(url; »//a[@rel=’nofollow’]/@href »)

=xpathonurl(url; »//a[@rel=’nofollow’] »; »href »)

Et oui, sur excel, il faut séparer l’attribut de l’élément.

Connaître le nombre d’éléments : combiner les fonctions

Comme je vous l’ai dit, les requêtes xpath vont lister les éléments (si la requête commence par //) ou sortir un seul élément (/).

Si vous souhaitez connaitre le nombre de liens sur une page, il « suffit » de combiner la fonction « lignes », qui compte le nombre de lignes, et la fonction xpathonurl.

Donc si vous voulez connaitre le nombre de liens d’une page :

=lignes(xpathonurl(url; »//a »))

=rows(importxml(url; »//a »))

Voilà, une fois que vous avez compris tout ça, vous pouvez construire vos premiers outils seo. A vous de jouer.

 Ressources complémentaires

Voilà, encore merci à tous pour cette journée, et en particuliers walid, jaffaar et shutter qui étaient à l’initiative du projet.

Et encore une fois, acquérir et retenir ce que je viens de vous présenter, le mieux est de pratiquer. Donc empressez-vous d’ouvrir excel, installer seo tools (si ce n’est pas fait) ou d’ouvrir google spreadsheet.

Pour réagir, les commentaires sont là pour ça.


Laissez un commentaire

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

3 commentaires sur “Google Black Day – scraper avec excel et google spreadsheet

  • Cédric

    Je n’ai malheureusement pas pu suivre ta conf … j’attends la vidéo avec impatience 🙂

    En tout cas chapeau pour l’explication. Je ne peux évidemment que confirmer qu’Excel et Google Spreadsheets sont des outils puissants pour peu que l’on passe un peu de temps à appréhender leur fonctionnement.

    Concernant l’apprentissage du Xpath, pour ceux qui souhaiteraient s’y mettre, personnellement cette vidéo de RDDZ m’a pas mal aidé à l’époque –> https://www.youtube.com/watch?v=Ok3K3szRT6U (il y a la partie 2 ensuite).

    NB : et merci pour la mention 😉