Comment construire un web scraper sans coder en 10 minutes?
Friday, October 08, 2021Commencer par l'exploration des sites Web
Qu'est-ce que le Web Crawling?
Le Web crawling consiste à extraire des données HTML spécifiques de certains sites Web. En termes simples, nous pouvons percevoir un web crawler comme un programme particulier conçu pour explorer des sites web de manière orientée et glaner des données. Cependant, nous sommes incapables d'obtenir à l'avance l'adresse URL de toutes les pages Web d'un site contenant de nombreuses pages Web. Ainsi, ce qui nous préoccupe est de savoir comment récupérer toutes les pages web HTML d'un site web.
Traverser toutes les URLs
Normalement, nous pourrions définir une page d'entrée: Une page Web contient les URL d'autres pages Web, nous pourrions alors récupérer ces URL à partir de la page actuelle et ajouter toutes ces URL affiliées dans la file d'attente d'exploration.
Ensuite, on crawle une autre page et on répète le même processus que la première de manière récursive. Essentiellement, nous pourrions considérer le schéma d'exploration comme une recherche en profondeur ou un parcours en largeur. Et tant que nous pouvons accéder à l'Internet et analyser la page Web, nous pouvons crawler un site Web. Heureusement, la plupart des langages de programmation offrent des bibliothèques client HTTP pour explorer les pages Web, et nous pouvons même utiliser des expressions régulières pour l'analyse HTML.
Algorithme général du Web Crawler
- Commencer par une liste d'URL initiales, appelées "the seeds".
- Visiter ces URLs.
- Extraire les informations requises de la page.
- Identifier tous les liens hypertextes de la page.
- Ajouter les liens à la file d'attente d'URLs, appelée crawler frontier.
- Visiter récursivement les URLs de la frontière du crawler.
Comment explorer un site Web?
Deux grandes étapes pour construire un Web Scraper
Pour construire un robot d'exploration du Web, une étape incontournable consiste à télécharger les pages Web. Ce n'est pas facile car de nombreux facteurs doivent être pris en considération, comme comment mieux exploiter la bande passante locale, comment optimiser les requêtes DNS, et comment libérer le trafic dans le serveur en assignant les requêtes web de manière raisonnable.
Après avoir récupéré les pages web, on passe à l'analyse de la complexité des pages HTML. En fait, nous ne pouvons pas récupérer toutes les pages web HTML. Et voici un autre problème. Comment récupérer le contenu généré par Javascript alors que AJAX est utilisé partout pour les sites web dynamiques? De plus, le Piège pour "Spider" qui se produit fréquemment sur Internet ferait un nombre infini de requêtes ou ferait échouer un crawler mal construit.
Bien qu'il y ait beaucoup de choses dont nous devrions être conscients lors de la création d'un crawler web, dans la plupart des cas, nous voulons simplement créer un crawler pour un site web spécifique. Il est donc préférable de faire des recherches approfondies sur la structure du site Web cible et de sélectionner des liens utiles à suivre, afin d'éviter des coûts supplémentaires pour des URL redondantes ou inutiles. De plus, nous pourrions essayer de n'explorer que ce qui nous intéresse dans le site Web cible en suivant une séquence prédéfinie si nous pouvons trouver un chemin d'exploration approprié concernant la structure du Web.
Par exemple, si nous souhaitons explorer le contenu de mindhack.cn, et que nous avons trouvé deux types de pages qui nous intéressent:
1. Liste d'articles, comme la page principale, ou l'URL avec /page/\d+/ et etc.
En inspectant Firebug, nous pouvons constater que le lien de chaque article est un "a Tag" sous h1.
2. Contenu de l'article, tel que /2008/09/11/machine-learning-and-ai-resources/, qui comprend le contenu complet de l'article.
Ainsi, nous pourrions commencer par la page principale, et récupérer les autres liens à partir de la page d'entrée-wp-pagenavi. Concrètement, nous devons définir un chemin: Nous ne suivons que la page suivante, ce qui signifie que nous pourrions parcourir toutes les pages du début à la fin, et être libérés d'un jugement répétitif. Ensuite, les liens concrets des articles dans la page de la liste seront les URLs que nous voudrions stocker.
Quelques conseils pour crawling
- Profondeur d'exploration - Combien de clics à partir de la page d'entrée vous souhaitez que le robot d'exploration traverse. Dans la plupart des cas, une profondeur de 5 est suffisante pour l'exploration de la plupart des sites Web.
- Crawling distribué - Le crawler va tenter d'explorer les pages en même temps.
- Pause - La durée de la pause avant l'exploration de la page suivante.
- Plus le crawler est rapide, plus il sera difficile sur le serveur (au moins 5-10 secondes entre les clics de page).
- Modèle d'URL - Le modèle détermine les pages sur lesquelles le robot d'exploration veut obtenir des données.
- Enregister un log - Un log enregistré stocke les URLs visitées et celles qui ont été converties en données. Il est utilisé pour le débogage et empêche l'exploration répétée d'un site visité.
Trouver un outil pour explorer les données
D'importants défis tactiques existent aujourd'hui dans le monde qui accompagne le web crawling:
- Blocage des adresses IP par les sites web cibles
- Structures de bande non uniformes ou irrégulières
- Contenu chargé par AJAX
- Temps de Latence
- Site web agressif anti-crawling
Traiter tous les problèmes n'est pas une tâche facile, et cela peut même être gênant. Heureusement, aujourd'hui, il n'est plus nécessaire de crawler un site Web comme autrefois et de se retrouver coincé dans un problème technique. Une nouvelle méthode pour crawler les données des sites Web cibles est proposée en remplacement. Les utilisateurs n'auront pas à s'occuper de configurations ou de codages complexes pour construire un crawler par eux-mêmes. Au lieu de cela, ils pourront se concentrer davantage sur l'analyse des données dans leurs domaines d'activité respectifs.
La méthode que je vous propose est un outil d'exploration automatique du Web, Octoparse, qui met l'exploration à la portée de tous. Les utilisateurs peuvent utiliser les outils intégrés et les API pour explorer les données à l'aide d'une interface utilisateur conviviale de type pointer-cliquer. De nombreuses autres extensions sont proposées dans cette application pour traiter les problèmes qui émergent en quelques étapes de configuration. Les problèmes sont résolus de manière plus efficace grâce à ses puissantes fonctions, notamment:
- Serveurs proxy IP pour éviter le blocage d'IP
- Outil Regex intégré pour reformater les champs de données
- Ajax pour charger du contenu dynamique
- Service Cloud pour diviser la tâche et accélérer l'extraction, etc.
Pour en savoir plus sur ce logiciel d'exploration du Web, vous pouvez consulter la vidéo ci-dessous pour apprendre comment lancer Octoparse et commencer votre exploration du Web.
Voir les fonctionnalités qui pourraient vous intéresser :
Extraire les éléments texte/URL/image/HTML/attribut
Quel est le Meilleur Langage pour le Web Scraping? PHP, Python ou Node.js?
Vous pouvez également en savoir plus sur la façon dont un scraper web est appliqué dans divers secteurs:
4 astuces pour les recruteurs en matière de collecte des données!
25 façons de développer vos activités avec le Web Scraping
Comment extraire les coordonnées sur Google Maps?
Top 5 des outils de scraping des réseaux sociaux
Auteur : L'équipe Octoparse
Posts les plus populaires
- 1 . Un guide complet pour scraper les offres d'emploi sur Indeed
- 2 . Price Scraping : Outils gratuits pour scraper les données sur les prix
- 3 . Top 30 des logiciels de Web scraping gratuits en 2021
- 4 . Outils de Web Crawler gratuits en ligne
- 5 . Telecharger en masse des images a partir des sites Web / Liens
Posts par sujet
Téléchargez Octoparse pour démarrer le web scraping ou contactez-nous pour des autres
questions sur le web scraping !