Le web scraping est le processus d'extraction de données à partir de sites web. Vous pouvez le faire manuellement à l'aide de navigateurs web ou l'automatiser à l'aide de bibliothèques comme Selenium et Puppeteer.
Selenium est un outil open-source qui vous permet d'automatiser des applications web et de tester la fonctionnalité de votre site web sans avoir à écrire de code dans votre navigateur. Il fonctionne également avec d'autres langages de programmation tels que Java, Python, C#, etc.
Puppeteer est une bibliothèque JavaScript pour automatiser les tests du navigateur Chrome sur les systèmes Linux sans tête. Puppeteer prend en charge Chrome et a été testé sur Ubuntu 16.04 LTS, 18.04 LTS et Debian 9 Stretch/Buster/Siduction (64 bits).
Dans cet article, nous apprenons à utiliser Selenium WebDriver dans NodeJS avec Puppeteer pour automatiser des applications utilisant le navigateur Chrome.
Qu'est-ce que le marionnettiste ?
Puppeteer est une bibliothèque JavaScript qui permet de contrôler le navigateur à l'aide de puppeteer.js. La bibliothèque fournit une API pour créer, gérer et interagir avec des pages web sans dépendre de tiers. Elle permet également de capturer les événements de la souris et les entrées du clavier afin d'interagir avec la page.
Comment fonctionne le marionnettiste ?
Puppeteer est une bibliothèque de nœuds pour contrôler Chrome. Elle vous permet de contrôler le navigateur avec JavaScript et d'interagir avec lui d'une manière impossible en utilisant uniquement HTML, CSS et JS.
Vous pouvez l'utiliser pour simuler des événements liés à la souris ou au clavier, réaliser des captures d'écran, manipuler des éléments DOM, envoyer des requêtes HTTP, etc. Puppeteer dispose également d'une API qui vous permet d'écrire vos scripts de marionnettisation sans utiliser directement l'une de ses API. Vous pouvez en savoir plus sur l'API ici : https://github.com/puppeteerjs/puppeteer-api.
Puppeteer résout le problème suivant : comment puis-je contrôler un navigateur sans pouvoir exécuter JavaScript ? Puppeteer vous permet de simuler des événements liés à la souris ou au clavier, de réaliser des captures d'écran, de manipuler des éléments du DOM, d'envoyer des requêtes HTTP, et bien plus encore. Il est également possible d'écrire vos scripts de marionnettisation sans utiliser directement l'une de ses API. C'est utile si vous souhaitez créer votre propre extension Chrome qui interagit avec le navigateur de manière inattendue.
La complexité et le contexte de l'automatisation évoluent chaque jour, de sorte qu'un seul outil peut ne pas être la solution pour tous. Puppeteer a quelques limitations. Il ne supporte que le navigateur Chrome. Puppeteer pour Firefox est en cours de développement.
Quels sont les avantages de l'utilisation de Puppeteer ?
Puppeteer est un moyen simple d'exécuter des scripts dans votre navigateur sans avoir à les écrire vous-même. Il est simple, léger et extensible. Vous pouvez l'utiliser avec n'importe quel langage de programmation ou framework (NodeJS, Python, Java). Il possède sa propre API, vous n'avez donc pas besoin d'apprendre une autre API juste pour le web scraping.
Vous n'avez pas besoin de savoir comment fonctionne Selenium pour utiliser Puppeteer, mais vous bénéficiez de tous ses avantages : automatisation, testabilité et portabilité !
Quels sont les inconvénients de l'utilisation de Puppeteer ?
Puppeteer est un framework très jeune. Il est encore en version bêta et ne prend pas en charge tous les navigateurs (il ne prend en charge que Chrome, Firefox, Opera et Safari). Cependant, avec le temps, Puppeteer sera en mesure de prendre en charge davantage de navigateurs. L'API n'est pas non plus aussi mature que Selenium, vous pourriez donc rencontrer quelques difficultés au début, mais cela s'améliorera avec le temps. Vous trouverez de nombreux exemples d'utilisation de Puppeteer sur son site officiel : puppeteerjs.com/docs/getting-started/.
Comment installer Puppeteer ?
Vous pouvez installer Puppeteer en téléchargeant un paquetage depuis le site web ou en l'installant manuellement. Rendez-vous sur la page du dépôt de Puppeteer et téléchargez la dernière version pour votre système d'exploitation. Pour l'exécuter, vous devez installer NodeJS sur votre ordinateur. Si vous ne savez pas par où commencer, rendez-vous ici : nodejs.org/en/download. Exécutez npm install -g puppet. Cela téléchargera toutes les dépendances nécessaires à l'exécution de puppetserver. Ouvrez maintenant une fenêtre de terminal dans votre répertoire personnel et tapez puppetserver.
Si tout se passe bien, vous devriez voir quelque chose comme ceci :
$ node server Starting server… done! http://localhost:4200 Connecting…done! http://localhost:4200 Disconnected / Connected http://localhost:4200 <– Start scraping now!
Pour arrêter, appuyez sur Ctrl+C, puis tapez exit.
Qu'est-ce que le sélénium ?
Selenium est un outil puissant que vous pouvez utiliser pour automatiser les applications basées sur le web. Il est également connu sous le nom de Webdriver. Selenium existe depuis un certain temps et est devenu l'un des outils les plus populaires de l'industrie informatique.
Que fait le sélénium ?
Selenium vous permet d'automatiser vos sites web en exécutant différentes actions telles que cliquer sur des boutons, remplir des formulaires ou même naviguer dans des pages. L'objectif principal de ce logiciel est de rendre les tests automatisés faciles et efficaces sans avoir à écrire de code soi-même. Vous pouvez utiliser ce logiciel à partir de votre navigateur (Chrome/Firefox) ou dans un langage de programmation comme Java, C# ou Python, etc. Une fois installé sur votre ordinateur, vous devez télécharger le serveur selenium, qui fonctionne sur le port 4444 (par défaut). Ouvrez ensuite Chrome/Firefox et tapez chrome://extensions dans la barre d'adresse, où vous verrez une liste des extensions disponibles ; sélectionnez Gérer les extensions, puis cliquez sur le bouton Charger l'extension décompressée.
Vous pouvez utiliser Selenium pour tester des sites web, des applications mobiles et des applications de bureau. Il est simple à utiliser et vous permet d'automatiser des applications web sans aucune connaissance en programmation. Vous pouvez également créer vos propres tests à l'aide de l'IDE Selenium, qui dispose d'une interface visuelle permettant de développer des tests de manière conviviale.
Avantages du sélénium
- Il fonctionne sur tous les navigateurs web (Chrome, Firefox, IE) et sur les appareils mobiles (Android). Selenium est multiplateforme. Il vous suffit d'installer un IDE pour la plateforme de votre choix et de commencer à utiliser l'API. Vous n'avez pas besoin d'apprendre de nouvelles API ou des langages différents pour chaque plateforme - il vous suffit d'utiliser un langage qui fonctionne sur toutes les plateformes.
- Selenium prend en charge la plupart des langages de programmation, y compris Java, C#, Python et bien d'autres. Si vous souhaitez automatiser quelque chose en JavaScript, vous pouvez utiliser NodeJS avec selenium-nodejs.
- Selenium supporte plusieurs frameworks comme Protractor, WebDriver, etc. La meilleure chose à propos de ces frameworks est qu'ils fournissent une couche d'abstraction agréable qui rend les choses plus faciles que d'avoir un code d'automatisation de navigateur pur écrit directement dans le navigateur lui-même. Par exemple, si nous voulons que nos tests s'exécutent simultanément sur plusieurs navigateurs, nous pouvons le faire avec selenium-web driver et selenium-webdriver2. Cela signifie que nous n'aurons aucun problème lorsque nous testerons sur plusieurs navigateurs à la fois car tout sera géré par le framework lui-même au lieu d'écrire manuellement du code personnalisé dans chaque navigateur (ce qui rendrait notre suite de tests beaucoup plus complexe).
- De nombreux plugins sont disponibles pour Selenium, tels que les extensions Google Chrome, les addons Firefox, etc. Qu'y a-t-il d'autre ? De nombreux exemples ! Et pas seulement des projets open source, mais aussi des projets commerciaux comme Appium, Sauce Labs, ou Watir. Alors si vous cherchez quelque chose de simple et rapide, essayez-les ! Ce sont des outils formidables ! Ils supportent également les tests asynchrones, ce qui signifie que même si votre test prend plus de temps que prévu, cela n'affectera pas les autres tests qui s'exécutent en parallèle sans bloquer le flux d'exécution des autres (mode asynchrone). Ainsi, nous pouvons écrire des tests d'interface utilisateur rapides sans nous soucier de ralentir notre application.
Tendances du marché de Selenium et Puppeteer : Pourquoi s'en préoccuper ?
Les tendances du marché de Selenium & Puppeteer montrent qu'il y a eu une augmentation significative de l'utilisation au cours des dernières années, en particulier depuis que Selenium 2 a été publié en 2014. La popularité de Selenium a continué à croître depuis lors, ce qui signifie qu'il continuera probablement à croître à ce rythme dans un avenir prévisible.
Quel est l'avenir des tests Web ?
La communauté open-source continue de développer de nouvelles technologies et d'améliorer les technologies existantes sans aucun signe de ralentissement. Tant que nous continuerons à innover et à créer de nouveaux outils, nous pouvons nous attendre à de nouvelles améliorations des technologies de test web.
Outils d'automatisation Web : Pourquoi les utiliser ?
Lorsque les membres de votre équipe travaillent sur leurs projets ou lorsqu'ils ont besoin d'aide pour tester leur base de code à l'aide de tests automatisés, l'accès à un outil d'automatisation tel que WebDriver leur facilitera grandement la tâche, plutôt que d'essayer des solutions manuelles à la main chaque fois qu'ils veulent tester quelque chose manuellement.
Lorsque vous disposez d'un outil d'automatisation Web comme WebDriver, vous pouvez l'utiliser pour automatiser vos tests et les écrire dans différents langages. Vous pouvez également l'utiliser pour interagir avec le navigateur et tester des fonctionnalités spécifiques de l'application qui sont difficiles ou impossibles à réaliser manuellement. Les possibilités sont infinies !
L'utilisation d'un outil d'automatisation vous facilitera grandement la vie en vous permettant d'écrire des tests automatisés pour votre base de code sans avoir à vous soucier de la façon dont les choses fonctionnent sous le capot.
Selenium ou Puppeteer : Quelle est la meilleure solution pour le webscraping ?
La principale différence entre les deux est que Puppeteer s'exécute dans Node.js et Selenium dans le navigateur.
Vous pouvez utiliser Puppeteer pour le web scraping et les tests d'API, mais il n'est pas aussi largement supporté que Selenium. Il n'a pas non plus de programme de test d'interface utilisateur intégré, vous devrez donc écrire le vôtre si vous voulez l'utiliser avec un navigateur sans tête comme PhantomJS ou NightwatchJS.
Selenium bénéficie d'une meilleure prise en charge des navigateurs que Puppeteer, et son programme de test de l'interface utilisateur fonctionne d'emblée avec la plupart des navigateurs courants (y compris Chrome). Cependant, certaines fonctionnalités manquent encore à Selenium par rapport à Puppeteer. Notamment, les API WebDriver pour interagir avec les éléments d'une page - ce qui signifie qu'il est plus difficile d'automatiser des interactions complexes entre plusieurs pages/domaines/applications (par exemple, cliquer sur des liens) en utilisant uniquement cette bibliothèque.
C'est le bon moment pour mentionner que nos proxys résidentiels rotatifs améliorent considérablement les opérations de web scraping avec Selenium et Puppeteer.