Prenez le pouvoir du grattage Web entre vos mains
La phrase « nous avons assez de données » n'existe pas dans le langage de la science des données. Nunca me he encontrado con nadie que haya dicho voluntariamente que no a la recopilación de más datos para su proyecto de aprendizaje automático o l'apprentissage en profondeurL'apprentissage en profondeur, Une sous-discipline de l’intelligence artificielle, s’appuie sur des réseaux de neurones artificiels pour analyser et traiter de grands volumes de données. Cette technique permet aux machines d’apprendre des motifs et d’effectuer des tâches complexes, comme la reconnaissance vocale et la vision par ordinateur. Sa capacité à s’améliorer continuellement au fur et à mesure que de nouvelles données lui sont fournies en fait un outil clé dans diverses industries, de la santé.... Et il y a souvent des situations où les données dont vous disposez ne suffisent tout simplement pas..
C'est à ce moment-là que la puissance du grattage Web est mise en évidence.. C'est une technique puissante que tout analyste ou data scientist devrait posséder et qui vous gardera en bonne position dans l'industrie. (Et quand tu es assis pour des interviews!).
Il existe un grand nombre de bibliothèques Python disponibles pour effectuer du web scraping. Mais, Comment décidez-vous lequel choisir pour votre projet particulier? Quelle bibliothèque Python a le plus de flexibilité? Mon objectif est de répondre à ces questions ici, À travers l'objectif de cinq bibliothèques Python populaires pour le grattage Web, je pense que tout passionné devrait être au courant.
Bibliothèques Python pour le web scraping
Le grattage Web est le processus d'extraction de données structurées et non structurées du Web à l'aide de programmes et de leur exportation dans un format utile.. Si vous voulez en savoir plus sur le web scraping, voici quelques ressources pour vous aider à démarrer:
Très bien, Jetons un coup d'œil aux bibliothèques de grattage Web en Python !!
1. Demander la bibliothèque (HTTP pour les humains) pour le grattage web
Commençons par la bibliothèque Python la plus basique pour le web scraping. ‘Demandes’ nous permet de faire des requêtes HTML au serveur du site Web pour récupérer les données sur votre page. L'obtention du contenu HTML d'une page Web est la première et la plus importante étape du grattage Web..
Pétitions est une bibliothèque python utilisée pour faire divers types de requêtes HTTP comme AVOIR, COURRIER, etc. En raison de sa simplicité et de sa facilité d'utilisation, est livré avec le slogan HTTP pour les humains.
Je dirais que c'est la bibliothèque la plus basique mais essentielle pour le scraping Web. Cependant, la bibliothèque de requêtes n'analyse pas les données HTML récupérées. Si on veut faire ça, nous avons besoin de bibliothèques comme lxml et Beautiful Soup (nous les couvrirons plus tard dans cet article).
Jetons un coup d'œil aux avantages et aux inconvénients de la bibliothèque Requests Python.
avantage:
- facile
- Authentification de base / implicite
- URL et domaines internationaux
- Demandes fragmentées
- Prise en charge du proxy HTTP (S)
Désavantages:
- Récupère uniquement le contenu statique d'une page
- Ne peut pas être utilisé pour analyser HTML
- Je ne peux pas gérer les sites Web créés exclusivement avec JavaScript.
2. bibliothèque lxml pour le scraping web
Nous connaissons le demandes la bibliothèque ne peut pas analyser le code HTML récupéré à partir d'une page Web. Donc, nous exigeons lxml, une bibliothèque Python d'analyse HTML et XML de qualité production, incroyablement rapide et performant.
Combinez la vitesse et la puissance des arborescences d'éléments avec la simplicité de Python. Fonctionne bien lorsque notre objectif est d'extraire de grands ensembles de données. Combinant demandes Oui lxml c'est très courant dans le web scraping. Il vous permet également d'extraire des données du HTML à l'aide des sélecteurs XPath et CSS.
Voyons les avantages et les inconvénients de lxml Bibliothèque Python.
avantage:
- Plus rapide que la plupart des analyseurs
- Léger
- Utiliser les arborescences d'articles
- API Pythonic
Désavantages:
- Ne fonctionne pas bien avec du HTML mal conçu
- La documentation officielle n'est pas très adaptée aux débutants.
3. Belle bibliothèque de soupes pour le grattage Web
Belle soupe c'est peut-être la bibliothèque python la plus utilisée pour le web scraping. Créer un arbre d'analyse pour analyser les documents HTML et XML. Beautiful Soup convertit automatiquement les documents entrants en Unicode et les documents sortants en UTF-8.
L'une des principales raisons pour lesquelles la bibliothèque Beautiful Soup est si populaire est qu'elle est plus facile à utiliser et convient aux débutants.. Nous pouvons également combiner Beautiful Soup avec d'autres analyseurs comme lxml. Mais toute cette facilité d'utilisation a un coût: est plus lent que lxml. Même en portant lxml comme analyseur, est plus lent que pur lxml.
L'un des principaux avantages de la bibliothèque Beautiful Soup est qu'elle fonctionne très bien avec du HTML mal conçu et qu'elle est riche en fonctionnalités.. Combinant Belle soupe Oui Pétitions c'est assez courant dans l'industrie.
avantage:
- Nécessite quelques lignes de code
- Excellente documentation
- Facile à apprendre pour les débutants
- Robuste
- Détection automatique de l'encodage
Désavantages:
Si vous voulez apprendre à copier des pages Web avec Beautiful Soup, ce tuto est pour toi:
4. Bibliothèque Selenium pour le web scraping
Il existe une limitation pour toutes les bibliothèques Python dont nous avons discuté jusqu'à présent: nous ne pouvons pas facilement extraire des données de sites Web remplis dynamiquement. Cela arrive car parfois les données présentes sur la page sont chargées via JavaScript. En mots simples, si la page n'est pas statique, les bibliothèques python mentionnées ci-dessus ont du mal à en extraire les données.
C'est là qu'intervient le sélénium..
Sélénium est une bibliothèque Python créée à l'origine pour les tests automatisés d'applications Web. Bien qu'il n'ait pas été conçu à l'origine pour le grattage Web, La communauté de la science des données a changé cela assez rapidement !!
C'est un contrôleur Web créé pour rendre des pages Web, mais cette fonctionnalité le rend très spécial. Où d'autres bibliothèques ne sont pas en mesure d'exécuter JavaScript, Le sélénium excelle. Vous pouvez cliquer sur une page, remplir des formulaires, faites défiler la page et faites beaucoup plus.
Cette capacité à exécuter JavaScript sur une page Web donne à Selenium le pouvoir d'extraire des pages Web remplies dynamiquement. Mais voici un compromis. Chargez et exécutez JavaScript pour chaque page, ce qui le rend plus lent et ne convient pas aux projets à grande échelle.
Si le temps et la vitesse ne vous préoccupent pas, vous pouvez certainement utiliser du sélénium.
avantage:
- Convient aux débutants
- Web scraping automatisé
- Peut gratter les pages Web remplies dynamiquement
- Automatiser les navigateurs Web
- Vous pouvez faire n'importe quoi sur une page Web similaire à une personne
Désavantages:
- Très lent
- Difficile à configurer
- Utilisation élevée du processeur et de la mémoire
- Pas idéal pour les grands projets.
Voici un article merveilleux pour apprendre comment fonctionne Selenium (y compris le code Python):
5. grattant
Il est maintenant temps de vous présenter les bibliothèques de scraping Web BOSS of Python: Scrapy!
grattant ce n'est pas qu'une bibliothèque; est un framework de grattage Web complet créé par les co-fondateurs de Scrapinghub: Pablo Hoffman et Shane Evans. Il s'agit d'une solution complète de raclage de bande qui fait tout le gros du travail pour vous.
Scrapy fournit des robots araignées qui peuvent explorer plusieurs sites Web et extraire les données. Con Scrapy, pouvez créer vos robots araignées, hébergez-les dans Scrapy Hub ou en tant qu'API. Vous permet de créer des araignées entièrement fonctionnelles en quelques minutes. Vous pouvez également créer des pipelines à l'aide de Scrapy.
La meilleure chose à propos de Scrapy est qu'il est asynchrone. Peut faire plusieurs requêtes HTTP simultanément. Cela nous fait gagner beaucoup de temps et augmente notre efficacité. (Et ne nous efforçons-nous pas tous pour cela?).
Vous pouvez également ajouter des plugins à Scrapy pour améliorer ses fonctionnalités. Bien que Scrapy ne puisse pas gérer JavaScript comme le sélénium, vous pouvez le coupler avec une bibliothèque appelée Splash, un navigateur Web léger. avec éclaboussure, Scrapy peut même extraire des données de sites Web dynamiques.
avantage:
- Asynchrone
- Excellente documentation
- Divers compléments
- Créer un middleware et des pipelines personnalisés
- Faible utilisation du processeur et de la mémoire
- Une architecture bien conçue
- Une multitude de ressources en ligne disponibles
Désavantages:
- Courbe d'apprentissage abrupte
- Excédent pour les travaux faciles
- Ne convient pas aux débutants
Si vous voulez apprendre Scrapy, que je recommande vivement, tu devrais lire ce tuto:
Suivant?
Personnellement, Je trouve ces bibliothèques python extrêmement utiles pour mes besoins. J'aimerais entendre vos réflexions sur ces bibliothèques ou si vous utilisez d'autres bibliothèques Python, Laissez-moi savoir dans la section commentaire ci-dessous.
Si vous avez aimé l'article, partagez-le sur votre réseau et continuez à pratiquer ces techniques.









