undefined
Blog > Post

Web Scraping en utilisant Python : Un guide étape par étape

Thursday, August 12, 2021

Le besoin d'extraire des données des sites Web est de plus en plus important. Lorsque nous menons des projets liés aux données, tels que la surveillance des prix, l'analyse commerciale ou l'agrégation de nouvelles, nous avons toujours besoin d'enregistrer les données des sites Web. Cependant, copier et coller les données ligne par ligne est dépassé. Dans cet article, nous allons vous apprendre à devenir un "initié" de l'extraction de données à partir de sites Web, c'est-à-dire à faire du web scraping avec python.

 

Step 0: Introduction

Le scraping web est une technique qui pourrait nous aider à transformer des données HTML non structurées en données structurées dans un tableur ou une base de données. Outre l'utilisation de Python pour écrire des codes, l'accès aux données d'un site Web à l'aide d'une API ou d'outils d'extraction de données comme Octoparse sont d'autres options alternatives pour le web scraping.

Certains grands sites Web, comme Airbnb ou Twitter, fournissent des API aux développeurs pour accéder à leurs données. API signifie Application Programming Interface (interface de programmation d'applications), qui est l'accès permettant à deux applications de communiquer entre elles. Pour la plupart des gens, l'API est l'approche la plus optimale pour obtenir des données fournies par le site web lui-même.

Cependant, la plupart des sites Web ne proposent pas de services API. Parfois, même s'ils fournissent une API, les données que vous pouvez obtenir ne sont pas celles que vous souhaitez. Par conséquent, l'écriture d'un script python pour construire un robot d'exploration du Web devient une autre solution puissante et flexible.

Alors pourquoi devrions-nous utiliser python plutôt que d'autres langages ?

  • Flexibilité : Comme nous le savons, les sites Web se mettent à jour rapidement. Non seulement le contenu mais aussi la structure du site changent fréquemment. Python est un langage facile à utiliser car il est dynamiquement imputable et hautement productif. Par conséquent, les gens peuvent modifier leur code facilement et suivre la vitesse des mises à jour du Web.
    Puissant : Python dispose d'une grande collection de bibliothèques matures. Par exemple, requests, beautifulsoup4 peuvent nous aider à récupérer des URL et à extraire des informations des pages Web. Selenium pourrait nous aider à éviter certaines techniques anti-scraping en donnant aux crawlers web la capacité d'imiter les comportements de navigation humains. En outre, re, numpy et pandas peuvent nous aider à nettoyer et à traiter les données.

 

Commençons maintenant notre voyage sur le web scraping en utilisant Python !

 

Étape 1 : Importer la bibliothèque Python

Dans ce tutoriel, nous allons vous montrer comment récupérer les avis de Yelp. Nous allons utiliser deux bibliothèques : BeautifulSoup dans bs4 et request dans urllib. Ces deux bibliothèques sont couramment utilisées pour construire un crawler web avec Python. La première étape consiste à importer ces deux bibliothèques dans Python afin de pouvoir utiliser les fonctions de ces bibliothèques.

 import library

Step 2: Extraire le HTML de la page web

Nous devons extraire les commentaires de "https://www.yelp.com/biz/milk-and-cream-cereal-bar-new-york?osq=Ice+Cream". Tout d'abord, sauvegardons l'URL dans une variable appelée URL. Ensuite, nous pourrons accéder au contenu de cette page web et enregistrer le HTML dans "ourUrl" en utilisant la fonction urlopen() dans la requête.

request url

Ensuite, nous appliquons BeautifulSoup pour analyser la page.

beautifulsoup

Maintenant que nous avons la "soupe", qui est le HTML brut de ce site Web, nous pouvons utiliser une fonction appelée prettify() pour nettoyer les données brutes et les imprimer pour voir la structure imbriquée du HTML dans la "soupe".

 

Étape 3 : Localisez et récupérez les critiques.

Ensuite, nous devrions trouver les revues HTML de cette page web, les extraire et les stocker. Pour chaque élément de la page web, ils auraient toujours un "ID" HTML unique. Pour vérifier leur ID, nous devrions les INSPECTER sur une page Web.

 

Après avoir cliqué sur "Inspecter l'élément" (ou "Inspecter", selon les différents navigateurs), nous avons pu voir le HTML des commentaires.

 node

Dans ce cas, les avis sont situés sous la balise "p". Nous allons donc d'abord utiliser la fonction find_all() pour trouver le nœud parent de ces commentaires. Puis nous localiserons tous les éléments avec le tag "p" sous le noeud parent dans une boucle. Après avoir trouvé tous les éléments "p", nous les stockons dans une liste vide appelée "review".

 

Maintenant nous obtenons tous les avis de cette page. Voyons combien d'avis nous avons extrait.

len review

 

Étape 4 : Nettoyer les examens

Vous devez remarquer qu'il y a encore des textes inutiles comme "<p lang='en'>" au début de chaque critique, "<br/>" au milieu des critiques et "</p>" à la fin de chaque critique.

"<br/>" correspond à un simple saut de ligne. Nous n'avons pas besoin d'un saut de ligne dans les critiques, nous devrons donc les supprimer. De même, "<p lang='en'>" et "</p>" sont le début et la fin du HTML et nous devons également les supprimer.

 

 

Enfin, nous avons réussi à obtenir tous les avis propres avec moins de 20 lignes de code.

Il ne s'agit ici que d'une démo pour récupérer 20 avis de Yelp. Mais dans des cas réels, nous pouvons avoir à faire face à beaucoup d'autres situations. Par exemple, nous aurons besoin d'étapes comme la pagination pour aller sur d'autres pages et extraire les autres avis pour cette boutique. Ou nous devrons également extraire d'autres informations comme le nom de l'évaluateur, sa localisation, l'heure de l'évaluation, la note, le check-in.......

Pour mettre en œuvre l'opération ci-dessus et obtenir plus de données, nous devrions apprendre plus de fonctions et de bibliothèques telles que Selenium ou les expressions régulières. Il serait intéressant de consacrer plus de temps à l'étude des défis du web scraping.

Toutefois, si vous cherchez des moyens simples de faire du web scraping, Octoparse pourrait être votre solution. Octoparse est un puissant outil de scraping Web qui peut vous aider à obtenir facilement des informations sur des sites Web. Consultez ce tutoriel pour savoir comment récupérer des avis sur Yelp avec Octoparse. N'hésitez pas à nous contacter si vous avez besoin d'un puissant outil de scraping Web pour votre entreprise ou votre projet !

 

日本語記事:PythonによるWebスクレイピングを解説
Webスクレイピングについての記事は 公式サイトでも読むことができます。
Artículo en español: Web Scraping con Python: Guía Paso a Paso
También puede leer artículos de web scraping en el WebsOficiite al

Pour en savoir plus, consultez le site officiel

 

EN SAVOIR PLUS

5 choses que vous devez savoir sur le contournement de CAPTCHA pour le Web Scraping

10 Meilleur Web Scraper Open Source en 2020

Les 30 meilleurs outils de visualisation de données en 2021

Modèles de scraping web pour vous

 

Téléchargez Octoparse pour démarrer le web scraping ou contactez-nous pour toute autre demande
questions sur le web scraping!

Contactez-Nous Télécharger
Nous utilisons des cookies pour améliorer votre expérience de navigation. Découvrez comment nous utilisons les cookies et comment vous pouvez les contrôler en cliquant sur les paramètres des cookies. Si vous continuez à utiliser ce site, vous consentez à notre utilisation des cookies.
Accepter Rejeter