Les librairies nécessaires
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte00:00:00 :Pour extraire les données de sites web avec Python, on dispose de différentes bibliothèques qui vont nous simplifier la vie.Ces bibliothèques vont nous permettre de récupérer et d'analyser le contenu HTML des sites web qu'on veut analyser.
00:00:13 :On va travailler notamment avec deux bibliothèques, Request et Beautiful Soup, qui sont des bibliothèques bien connues des développeurs Python,puisqu'elles existent depuis le début des années 2000, comme on peut le voir à leur magnifique logo.
00:00:26 :C'est sûr que ça peut faire un petit peu peur comme ça.Si je vous montre la documentation de Beautiful Soup, vous allez probablement vous dire que vous vous êtes trompé deux décennies.
00:00:35 :Personnellement, j'ai l'habitude de faire confiance à ces sites un petit peu moches,puisque je me dis que les développeurs qui font ces librairies mettent vraiment leur temps au bon endroit,c'est-à-dire sur le développement et la maintenance de ces bibliothèques,plutôt que sur l'aspect visuel des sites web de ces librairies.
00:00:51 :Ces bibliothèques ont été testées et approuvées depuis maintenant près de deux décennies.Donc, je peux vous dire que c'est du solide.Alors, qu'est-ce qu'elles vont nous permettre de faire ces bibliothèques ?
00:01:00 :Elles vont nous permettre à la fois de récupérer le HTML de site web et de l'analyser.On peut également citer la bibliothèque HTTPX, qui peut être utilisée à la place de Request.
00:01:11 :Elle est très très similaire à Request. Dans le code, vous verrez que c'est très facile de passer de l'une à l'autre.HTTPX apporte notamment la gestion des requêtes asynchrone et utilise des nouveautés du protocole HTTP.
00:01:25 :Mais dans la plupart des cas, vous pouvez vous contenter de Request.Et nous, c'est Request qu'on va utiliser dans cette formation.Il existe également des bibliothèques un peu plus avancées, comme Scrappy, qu'on ne verra pas tout de suite,qui est une bibliothèque qui nous permet de faire un petit peu la même chose que Request
00:01:40 :et de Beautiful Soup à l'intérieur d'une seule bibliothèque,qui nous permet de créer ce qu'on appelle des crawlers.C'est tout simplement les petits robots de Google que vous connaissez, qui vont parcourir les sites web.
00:01:51 :L'avantage de Scrappy, c'est qu'on va pouvoir aller un cran au-dessus pour automatiser ces processuset parcourir toutes les pages d'un site web pour récupérer des informations.
00:02:00 :Scrappy, son avantage, c'est vraiment d'automatiser tous ces processus.Mais on peut faire sensiblement la même chose avec Request et Beautiful Soup, avec un peu plus de travail.
00:02:09 :Scrappy va juste permettre d'automatiser tout ça un peu plus facilement à l'échelle.Si on revient à nos deux bibliothèques, Request et Beautiful Soup, on va voir qu'elles n'ont pas la même utilité.
00:02:19 :Request sert notamment à effectuer des requêtes HTTP vers des sites webpour ensuite récupérer le code HTML de ces sites web.Ce code HTML, on va pouvoir ensuite l'analyser avec Beautiful Soup.
00:02:32 :Beautiful Soup permet d'analyser et de naviguer dans le DOM.Ça va nous permettre de plus facilement récupérer les infos qui sont contenues à l'intérieur de la structure HTMLqui aura été récupérée avec Request.
00:02:44 :Mais il faut bien comprendre qu'on peut très bien utiliser Beautiful Soup sans forcément utiliser Request.Si vous avez des fichiers HTML sur votre disque dur, vous pouvez directement les analyser.
00:02:55 :Beautiful Soup, c'est ce qu'on appelle un parser en bon français, qui veut dire un analyseur si vous voulez.Ça va juste analyser et comprendre le HTML pour pouvoir naviguer à l'intérieur de cette structure facilement avec du code Python.
00:03:08 :Request, ça va juste nous permettre de récupérer les informations du site web.Généralement, on utilise l'un avec l'autre puisque c'est rare qu'on fasse juste de l'analyse de fichiers statiques sur notre disque dur.
00:03:19 :Ce qu'on veut, c'est généralement aller récupérer les dernières informations à jour d'un site webpour pouvoir ensuite les analyser et vérifier s'il y a eu des modifications ou des choses qui nous intéressentqu'on peut ensuite stocker ou envoyer pour faire des alertes par exemple à des clients.
00:03:33 :Si on rentre un petit peu plus dans le détail, on va voir que Request nous permet de faire des requêtes comme son nom l'indique.Imaginons qu'on souhaite récupérer le code HTML de Google.
00:03:51 :Par exemple, la balise du titre, une balise de titre et ici un paragraphe, quelque chose de très simple.Et on va ensuite pouvoir ramener notre ami Beautiful Soup qui lui va nous permettre de comprendre cette structurepuisque ce serait un petit peu pénible sans cet outil d'aller chercher à l'intérieur des balises,
00:04:08 :donc de devoir faire une recherche du texte H1.On peut le faire directement avec du Python, avec des searches, etc. mais ça ne serait pas très pratique.
00:04:15 :Donc là, ce qu'on va faire avec Beautiful Soup, c'est utiliser les outils de la bibliothèque pour par exemple aller chercher la balise Titleet récupérer le titre de cette balise qui dans ce cas-ci est littéralement le titre de la page.
00:04:28 :Mais on peut aller beaucoup plus loin comme je le disais puisqu'on va pouvoir traverser ce DOM, ce Document Object Model,et récupérer des objets.Donc là par exemple, si on souhaite récupérer les enfants du body, on peut faire une boucle et afficher tous les enfants,donc tous les child qui sont dans la liste de Children.
00:04:46 :Donc Children, c'est les enfants du body.Dans ce cas-ci, on a deux enfants.On a le titre H1 et le paragraphe.Et comme je vous ai dit, là on travaille avec des objets, Document Object Model.
00:04:57 :Donc là, ici, ce n'est pas juste du texte.Ça va être un objet qui va contenir des attributs.Si vous connaissez Python et l'Orienté Objet, vous savez que les objets contiennent des attributs et qu'on peut afficher ces attributs.
00:05:09 :Dans ce cas-ci, l'objet qui nous est retourné par Beautiful Soup va contenir un attribut texteet ça va nous permettre de récupérer le texte à l'intérieur de ces baliseset d'enlever le H1 avec les symboles de plus grand et plus petit,donc les balises HTML, pour récupérer uniquement le texte qui est contenu à l'intérieur.
00:05:27 :Donc voilà pour les fondamentaux.Vous allez voir que Beautiful Soup est beaucoup plus puissant que ça.On peut cibler très précisément des parties de la page en fonction des ID, des classes ou de plein d'autres choses comme ceci,ce qui va nous permettre d'aller récupérer très précisément l'information que l'on souhaite
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.