Web Scraping avec Python : Guide du débutant
Publié: 2016-10-10Dans le monde du Big Data, les services de Web Scraping ou d'extraction de données sont les principales conditions requises pour Big Data Analytics. Extraire des données du Web est devenu presque inévitable pour que les entreprises restent en activité. La question suivante qui se pose est de savoir comment procéder pour le grattage Web en tant que débutant.

Les données peuvent être extraites ou extraites d'une source Web en utilisant un certain nombre de méthodes. Des sites Web populaires tels que Google, Facebook ou Twitter proposent des API pour afficher et extraire les données disponibles de manière structurée. Cela empêche l'utilisation d'autres méthodes qui peuvent ne pas être préférées par le fournisseur d'API. Cependant, la demande d'exploration d'un site Web survient lorsque les informations ne sont pas facilement proposées par le site Web. Python, un langage de programmation open-source est souvent utilisé pour le Web Scraping en raison de son écosystème simple et riche. Il contient une bibliothèque appelée « BeautifulSoup » qui poursuit cette tâche. Examinons de plus près le web scraping en utilisant python.
Configuration d'un environnement Python :
Pour effectuer du web scraping avec Python, vous devez d'abord installer l'environnement Python, qui vous permet d'exécuter du code écrit en langage python. Les bibliothèques effectuent du scraping de données ;
Beautiful Soup est une bibliothèque python pratique à utiliser. C'est l'un des meilleurs outils pour extraire des informations d'une page Web. Les professionnels peuvent explorer des informations à partir de pages Web sous forme de tableaux, de listes ou de paragraphes. Urllib2 est une autre bibliothèque qui peut être utilisée en combinaison avec la bibliothèque BeautifulSoup pour récupérer les pages Web. Des filtres peuvent être ajoutés pour extraire des informations spécifiques des pages Web. Urllib2 est un module Python qui peut récupérer des URL.
Pour MAC OSX :
Pour installer les bibliothèques Python sur MAC OSX, les utilisateurs doivent ouvrir un terminal win et saisir les commandes suivantes, une seule commande à la fois :
pip sudoeasy_install
pip installer BeautifulSoup4
pip installer lxml
Pour les utilisateurs de Windows 7 et 8 :
Les utilisateurs de Windows 7 et 8 doivent s'assurer que l'environnement python est installé en premier. Une fois l'environnement installé, ouvrez l'invite de commande et trouvez le chemin vers le répertoire root C:/, et tapez les commandes suivantes :
easy_install BeautifulSoup4
easy_installlxml
Une fois les librairies installées, il est temps d'écrire un code de data scraping.
Exécuter Python :
Le grattage de données doit être fait pour un objectif distinct tel que parcourir le stock actuel d'un magasin de détail. Tout d'abord, un navigateur Web est nécessaire pour naviguer sur le site Web qui contient ces données. Après avoir identifié la table, cliquez avec le bouton droit n'importe où dessus, puis sélectionnez l'élément d'inspection dans la liste du menu déroulant. Cela entraînera l'apparition d'une fenêtre contextuelle en bas ou sur le côté de votre écran affichant le code Html du site Web. Les classements apparaissent dans un tableau. Vous devrez peut-être parcourir les données HTML jusqu'à ce que vous trouviez la ligne de code qui met en surbrillance le tableau sur la page Web.
Python propose d'autres alternatives pour le scraping HTML en dehors de BeautifulSoup. Ils comprennent:
- Scrapy
- Gravure
- Mécaniser
Le scraping Web convertit les données non structurées du code HTML en données structurées telles que les données tabulaires dans une feuille de calcul Excel. Le scraping Web peut être effectué de plusieurs manières, allant de l'utilisation de Google Docs aux langages de programmation. Pour les personnes qui n'ont aucune connaissance en programmation ou compétences techniques, il est possible d'acquérir des données Web en utilisant des services de grattage Web qui fournissent des données prêtes à l'emploi à partir de sites Web de votre choix.
Balises HTML :
Pour effectuer du web scraping, les utilisateurs doivent avoir une bonne connaissance des balises HTML. Il peut être très utile de savoir que les liens HTML sont définis à l'aide d'une balise d'ancrage, c'est-à-dire la balise <a>, "<a href="https://…">Le lien doit être ici </a>". Une liste HTML comprend une liste <ul> (non ordonnée) et une liste <ol> (ordonnée). L'élément de la liste commence par <li>.
Les tableaux HTML sont définis avec <Table>, ligne comme <tr> et les colonnes sont divisées en données comme <td> ;
- <!DOCTYPE html> : Un document HTML commence par une déclaration de type de document
- La partie principale du document HTML en texte brut non formaté est définie par les balises <body> et </body>
- Les en-têtes en HTML sont définis à l'aide des balises d'en-tête de <h1> à <h5>
- Les paragraphes sont définis avec la balise <p> en HTML
- Un document HTML entier est contenu entre <html> et </html>
Utilisation de BeautifulSoup dans Scraping :

Lors du grattage d'une page Web à l'aide de BeautifulSoup, la principale préoccupation est d'identifier l'objectif final. Par exemple, si vous souhaitez extraire une liste d'une page Web, une approche par étapes est requise :
- La première étape consiste à importer les bibliothèques requises :
#importer la bibliothèque utilisée pour interroger un site Web
importer urllib2
#spécifiez l'url wiki = "https://"
#Interrogez le site Web et renvoyez le html à la variable 'page'
page = urllib2.urlopen(wiki)
#importer les fonctions Beautiful soup pour analyser les données renvoyées par le site Web
depuis bs4 importer BeautifulSoup
#Analysez le code HTML dans la variable 'page' et stockez-le au format Beautiful Soup
soupe = BeautifulSoup(page)
- Utilisez la fonction "prettify" pour visualiser la structure imbriquée de la page HTML
- Utilisation des balises Soup :
Soup<tag> est utilisé pour renvoyer le contenu entre l'ouverture et la fermeture de la balise, y compris la balise.
- Dans[30] :soupe.titre
Out[30] :<title>Liste des présidents en Inde jusqu'en 2010 - Wikipédia, l'encyclopédie gratuite</title>
- soup.<tag>.string : renvoie une chaîne dans une balise donnée
- Dans [38] :soupe.titre.chaîne
- Out[38]:u 'Liste des présidents en Inde et au Brésil jusqu'en 2010 en Inde - Wikipedia, l'encyclopédie libre'
- Trouvez tous les liens dans les balises <a> de la page : balisez un lien à l'aide de la balise "<a>". Alors, allez avec l'option soup.a et cela devrait renvoyer les liens disponibles dans la page Web. Faisons-le.
- Dans [40] :soupe.a
Sortie[40] :<a id="top"></a>
- Trouvez la bonne table :
Comme une table pour extraire des informations sur les présidents en Inde et au Brésil jusqu'en 2010 est recherchée, il est important d'identifier d'abord la bonne table. Voici une commande pour explorer les informations contenues dans toutes les balises de table.
all_tables= soupe.find_all('table')
Identifiez la bonne table en utilisant l'attribut "classe" de la table qui doit filtrer la bonne table. Ensuite, inspectez le nom de la classe en cliquant avec le bouton droit sur le tableau requis de la page Web comme suit :
- Inspecter l'élément
- Copiez le nom de la classe ou recherchez le nom de la classe de la table de droite à partir de la sortie de la dernière commande.
right_table=soup.find('table', class_='wikitable sortable plainrowheaders')
table_droite
C'est ainsi que nous pouvons identifier la bonne table.
- Extrayez les informations vers DataFrame : il est nécessaire de parcourir chaque ligne (tr), puis d'affecter chaque élément de tr (td) à une variable et de l'ajouter à une liste. Analysons la structure HTML de la table de la table. (extrait des informations pour l'en-tête du tableau <th>)
Pour accéder à la valeur de chaque élément, il est nécessaire d'utiliser l'option "find(text=True)" avec chaque élément. Enfin, il y a des données dans dataframe.
Il existe diverses autres façons d'explorer les données à l'aide de "BeautifulSoup" qui réduisent les efforts manuels pour collecter des données à partir de pages Web. Le code écrit en BeautifulSoup est considéré comme plus robuste que les expressions régulières. La méthode de grattage Web dont nous avons discuté utilise les bibliothèques « BeautifulSoup » et « urllib2 » en Python. C'était un bref guide du débutant pour commencer à utiliser Python pour le grattage Web.
Restez à l'écoute pour notre prochain article sur la façon dont le web scraping affecte la croissance de vos revenus.
Vous envisagez d'acquérir des données sur le Web pour la science des données ? Nous sommes là pour vous aider. Faites-nous part de vos besoins.
