Comment utiliser Google Sheets pour le web scraping et la création de campagnes

Video google sheet get data from website

Nous avons tous été confrontés à une situation où nous devions extraire des données d’un site web à un moment donné. Lorsque vous travaillez sur un nouveau compte ou une nouvelle campagne, il est possible que vous n’ayez pas les données ou les informations nécessaires pour la création des publicités, par exemple. Dans un monde idéal, nous aurions toutes les informations dont nous avons besoin, dans un format facile à importer comme un fichier CSV, une feuille de calcul Excel ou une feuille de calcul Google. Malheureusement, ce n’est pas toujours le cas.

Cependant, ceux qui ne disposent pas des outils de web scraping, ou des connaissances en codage pour utiliser quelque chose comme Python pour les aider dans cette tâche, ont peut-être dû se résoudre à copier et coller manuellement des centaines, voire des milliers d’entrées. Non seulement cela prend du temps, mais les chances de faire une ou deux erreurs en copiant et collant manuellement les données sont assez élevées. De plus, il faudrait ensuite encore plus de temps pour vérifier le document et s’assurer qu’il est exempt d’erreurs.

Heureusement, il y a une meilleure solution. Et je vais vous montrer comment nous l’avons fait.

Qu’est-ce que IMPORTXML?

Permettez-moi de vous présenter IMPORTXML, une fonction de Google Sheets. Selon la page d’aide de Google, IMPORTXML « importe des données de différents types de structures, y compris XML, HTML, CSV, TSV, et des flux XML RSS et ATOM ». En gros, IMPORTXML est une fonction qui vous permet d’extraire des données structurées à partir de pages web, sans avoir besoin de connaissances en codage.

Par exemple, il est rapide et facile d’extraire des données telles que les titres de page, les descriptions ou les liens, mais aussi des informations plus complexes.

Comment IMPORTXML peut-il aider à extraire des éléments d’une page web?

La fonction IMPORTXML elle-même est assez simple et ne nécessite que deux valeurs:

  • L’URL de la page à partir de laquelle nous voulons extraire ou scraper les informations.
  • Et le chemin XPath de l’élément dans lequel les données sont contenues.

XPath signifie XML Path Language et peut être utilisé pour naviguer à travers les éléments et les attributs d’un document XML.

Par exemple, pour extraire le titre de la page à partir de https://fr.wikipedia.org/wiki/Google_Sheets, nous utiliserions:

=IMPORTXML("https://fr.wikipedia.org/wiki/Google_Sheets", "//title")

Cela renverra la valeur: Google Sheets — Wikipédia.

Ou, si nous recherchons la description de la page, nous pouvons essayer ceci:

=IMPORTXML("https://www.fr.searchenginejournal.com/","//meta[@name='description']/@content")

Voici une liste succincte de certaines des requêtes XPath les plus courantes et utiles :

  • Titre de la page : //title
  • Description méta de la page : //meta[@name=’description’]/@content
  • H1 de la page : //h1
  • Liens de la page : //@href

Voir IMPORTXML en action

Depuis que nous avons découvert IMPORTXML dans Google Sheets, il est vraiment devenu l’une de nos armes secrètes pour automatiser bon nombre de nos tâches quotidiennes, de la création de campagnes et de publicités à la recherche de contenu, et bien plus encore.

De plus, lorsque la fonction est combinée à d’autres formules et compléments, elle peut être utilisée pour des tâches plus avancées qui nécessiteraient autrement des solutions sophistiquées et du développement, comme des outils développés en Python.

Mais dans cet exemple, nous allons examiner IMPORTXML dans sa forme la plus basique : le scraping de données à partir d’une page web. Regardons un exemple concret.

Supposons qu’on nous ait demandé de créer une campagne pour le journal « Search Engine Journal ». Ils aimeraient que nous fassions de la publicité pour les 30 derniers articles publiés sous la section PPC du site web. Une tâche assez simple, pourriez-vous dire. Malheureusement, les éditeurs ne sont pas en mesure de nous envoyer les données et nous ont gentiment demandé de consulter le site web pour trouver les informations nécessaires à la création de la campagne.

Comme mentionné au début de notre article, une façon de faire cela serait d’ouvrir deux fenêtres de navigateur, une avec le site web et l’autre avec Google Sheets ou Excel. Ensuite, nous commencerions à copier et coller les informations, article par article et lien par lien.

Mais en utilisant IMPORTXML dans Google Sheets, nous pouvons obtenir le même résultat avec peu ou pas de risque d’erreur, en une fraction du temps. Voici comment procéder.

Étape 1 : Commencez avec une nouvelle feuille de calcul Google

Tout d’abord, ouvrez un nouveau document vierge Google Sheets.

Start with a Blank Google Sheets Document

Étape 2 : Ajoutez le contenu que vous devez scraper

Ajoutez l’URL de la page (ou des pages) à partir de laquelle nous voulons scraper les informations. Dans notre cas, nous commençons par https://www.searchenginejournal.com/category/pay-per-click/

Étape 3 : Trouvez le chemin XPath

Trouvez le chemin XPath de l’élément à partir duquel nous voulons importer le contenu dans notre feuille de calcul. Dans notre exemple, commençons par les titres des 30 derniers articles. Ouvrez Chrome et, une fois que vous survolez le titre de l’un des articles, faites un clic droit et sélectionnez Inspecter. Cela ouvrira la fenêtre des outils de développement de Chrome. Assurez-vous que le titre de l’article est toujours sélectionné et mis en surbrillance, puis faites un clic droit à nouveau et choisissez Copier > Copier XPath.

Étape 4 : Extraire les données dans Google Sheets

De retour dans votre document Google Sheets, introduisez la fonction IMPORTXML de la manière suivante:

=IMPORTXML(B1, "//*[starts-with(@id, 'title')]")

Voici quelques choses à noter:

Premièrement, dans notre formule, nous avons remplacé l’URL de la page par la référence à la cellule où l’URL est stockée (B1).

Deuxièmement, lors de la copie du chemin XPath à partir de Chrome, celui-ci sera toujours placé entre guillemets doubles. Cependant, pour éviter de rompre la formule, le signe de guillemet double doit être changé en signe de guillemet simple.

Notez que dans ce cas, puisque l’ID de la page change pour chaque article (title_1, title_2, etc.), nous devons légèrement modifier la requête et utiliser « starts-with » pour capturer tous les éléments de la page ayant un ID qui contient ‘title’.

Voici à quoi cela ressemble dans le document Google Sheets :

[Insérer image Google Sheets]

Et en quelques instants, voici à quoi ressemblent les résultats une fois que la requête a chargé les données dans la feuille de calcul :

[Insérer image résultats Google Sheets]

Comme vous pouvez le voir, la liste renvoie tous les articles présentés sur la page que nous venons de scraper (y compris mon précédent article sur l’automatisation et l’utilisation des personnalisateurs d’annonces pour améliorer les performances des campagnes Google Ads). Vous pouvez appliquer la même méthode pour extraire tout autre élément d’information dont vous avez besoin pour configurer votre campagne publicitaire.

Ajoutons maintenant les URL des pages de destination, les extraits en vedette de chaque article et le nom de l’auteur dans notre document Sheets. Pour les URLs des pages de destination, nous devons ajuster la requête pour spécifier que nous recherchons l’élément HREF attaché au titre de l’article. Par conséquent, notre requête ressemblera à ceci :

=IMPORTXML(B1, "//*[starts-with(@id, 'title')]/@href")

Et voilà ! Immédiatement, nous avons les URLs des pages de destination.

Vous pouvez faire de même pour les extraits en vedette et les noms des auteurs.

Conclusion

Et voilà, vous disposez maintenant d’une méthode entièrement automatisée et sans erreur pour extraire des données de (potentiellement) n’importe quelle page web, que ce soit du contenu et des descriptions de produits, ou des données d’e-commerce telles que le prix des produits ou les frais de livraison.

À une époque où l’information et les données peuvent être l’avantage nécessaire pour obtenir des résultats supérieurs à la moyenne, la capacité de scraper des pages web et du contenu structuré de manière facile et rapide peut être inestimable. De plus, comme nous l’avons vu ci-dessus, IMPORTXML peut aider à réduire les temps d’exécution et les risques d’erreur.

De plus, cette fonction n’est pas seulement un excellent outil qui peut être exclusivement utilisé pour des tâches PPC, mais elle peut également être très utile dans de nombreux autres projets qui nécessitent du web scraping, y compris des tâches de référencement et de contenu.

Découvrez plus de conseils et d’astuces sur le web scraping et la création de campagnes sur Crawlan.com.

Articles en lien