Comment faire du web scrapping avec Python<span class="wtr-time-wrap after-title"><span class="wtr-time-number">7</span> min read</span>

Comment faire du web scrapping avec Python7 min read

Dans ce tutoriel, nous allons parler de web scraping avec Python.

D’abord, nous devons comprendre ce qu’est le web scraping ? C’est une technique de programmation qui permets de télécharger des données qui proviennent du web.

Pour faire du web scrapping, vous devez utiliser le module requests et la librairie bs4. Vous devez effectuer des requêtes HTTP et ensuite les analyser / traiter avec la librairie bs4

Ces données sont ensuite manipulable ou analysable. Il est donc très intéressant pour les entreprises d’avoir des programmes qui récupèrent automatiquement des données sur le web afin de les utiliser ou d’en faire des statistiques.

Les prérequis pour faire du web scrapping avec Python

Vous n’avez besoin de presque rien. Vous devez seulement avoir les bases du langage de programmation. Nous allons ensuite installer quelques librairies pour pouvoir faire des requêtes et récupérer le code.

Il est possible de faire du web scrapping avec d’autres langages de programmation comme Javascript. Néanmoins, il s’avère que python remplis très bien ce rôle car il es rapide, souple et facile à utiliser.

Comment faire du web scrapping avec Python

Nous allons d’abord apprendre à récupérer le titre et le lien d’une page web en utilisant quelques méthodes et quelques classes.

Pour se faire, nous allons avoir besoin de la librairie bs4

Cette librairie va nous permettre de récupérer les données des site qui nous intéressent et de les formater afin de pouvoir les utiliser.

Pour installer bs4 : Vous devez ouvrir votre cmd windows ou votre terminal Linux / Mac et taper la commande

pip install bs4

Importation des librairies de web scrapping

Maintenant que nous avons installés les outils dont nous avons besoins. Nous devons créer un script et importer ces librairies pour ensuite les utiliser.

Créons un script python basique que nous allons appeler app.py

Nous devons maintenant importer les librairies bs4 et requests

import bs4
import requests

requests et une librairie qui va nous permettre de créer des requêtes http. Nous allons nous en servir pour récupérer du contenu sur internet. Ce dernier seras ensuite manipulé par la librairie bs4

Voyons maintenant comment récupérer le code source d’un site web, par exemple leblogducodeur

url = "https://leblogducodeur.fr/"
reponse = requests.get(url)
soup = bs4.BeautifulSoup(reponse.text, 'htm.parser')
print(soup.prefify())

Ce code va en fait aller exécuter une requête HTTP. Ensuite, la librairie bs4 va trier la réponse reçue afin d’extraire le code.

Enfin, on utilise la fonction préfify qui va nous permettre d’afficher le code sous un format lisible.

Comme vous pouvez le voir, il est plutôt simple de récupérer le code source d’une page web.

Mais il est possible de faire mieux, on peux aussi sélectionner uniquement certaines portions d’un site.

Pour se faire , on peux utiliser la fonction find(). Elle va nous permettre de récupérer des textes, des liens ou encore pleins d’autres choses provenant d’un site web. On va maintenant voir comment récupérer uniquement les paragraphes d’un site web.

L’objet soup du code précédent contiens absolument tout le code du site. Il est possible d’appliquer des méthodes ( En l’occurence find() ) pour filtrer certaines lignes de code.

Pour appliquer la méthode find() il faut utiliser une boucle for et tester chaque ligne de code du site.

for paragraph in soup.find('p'):
    print(paragraph)

Cette boucle va simplement aller tester chaque ligne. Si c’est un paragraphe, on affiche la ligne à l’écran.

Le soucis de ce petit programme, c’est qu’il ne récupère pas tout les paragraphes d’un site web. Si vous voulez récupérer tout les paragraphes d’une page web, vous pouvez aussi utiliser la méthode find_all()

for paragraph in soup.find_all('p'):
    print(paragraph)

Si vous testez ce code en live, vous allez vous rendre compte que ce script affiche les paragraphes avec les balises html <p> </p>. Il est possible de les retirer en ajoutant un mot clé à la fin de notre paragraphe

for paragraph in soup.find_all('p'):
    print(paragraph.text)

Vous venez de voir comment il est possible de récupérer certains éléments provenant d’un site web. Maintenant nous allons voir comment trouver les liens d’un site web avec Python

Comment récupérer les liens d’un site web avec Python

Dans cette partie nous allons apprendre à récupérer tout les liens d’une page web.

Les modules importés sont les mêmes , seuls quelques parties du code changent.

Vous le savez peut-être, la balise html qui correspond aux liens est “a”. Il suffit donc de remplacer ‘p’ par ‘a’ pour obtenir et afficher tout les liens.

Enfin, nous obtiendrons les objets HTML qui représentent les liens. Pour aller chercher directement les liens, nous devons récupérer l’attribut href

for liens in soup.find_all('a'):
    lien = liens.get('href')
    print(lien)

Comme vous pouvez le voir , ce code permets d’afficher les liens présents sur mon site. Si vous vous amusez à retirer la ligne 2, vous allez récupérer les objets html et non pas les liens.

Pourquoi vouloir récupérer les liens d’une page

Parfois, on as besoin des liens d’une page pour automatiser certaines tâches. Google par exemple, utilisent le web scrapping pour récupérer les liens d’un site, et donc évaluer sa taille, son niveau de confiance et ses différentes urls.

Il est aussi possible d’avoir besoin de récupérer les liens d’une page dans le cas de facebook par exemple. En growth hacking, on veux récupérer des comptes facebook, et on veux automatiser le processus.

Le fait de récupérer les liens d’une page web as bien plus d’utilité que ça n’en as l’air. C’est quelque chose de très demandé et donc d’important à connaître.

En conclusion

Comme vous pouvez le voir, le web scrapping ce n’est pas très compliqué. Il suffit d’utiliser la librairie bs4 pour analyser le code et requests pour effectuer des requêtes HTTP.

Il existe bien d’autres fonctionnalités que je n’ai pas présenté, mais dans le fond ce n’est pas plus compliqué.

Il est par exemple possible de récupérer un objet avec une certaine classe. Toutes ces fonctionnalités sont trouvables dans la documentation de bs4

J’espère que ce tutoriel vous as plu et qu’il vous permettras d’utiliser le web scraping facilement. Si vous avez des questions sur le web scraping ou des recommandations, vous pouvez écrire un commentaire, je me ferai un plaisir de vous répondre.

Si vous voulez en apprendre plus sur la programmation et recevoir un guide gratuit pour apprendre la programmation, vous pouvez vous abonner à ma newsletter

Vous abonner à notre newsletter

* champ requis

Bonne journée 🙂

Cet article a 2 commentaires

  1. Bonjour je voudrais savoir si on pourra par exemple faire des taches dans un site avec le web scraping en python , exemple: créer un compte ou surfer dans le site

    1. Bonjour, dans ce cas je recommande d’utiliser pupeteer, c’est une librairie simulant un navigateur google chrome !

Laisser un commentaire

Fermer le menu
×
×

Panier