Récupérer la liste des films
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte00:00:00 :Dans cette partie je vais vous montrer comment on peut récupérer la liste des films en utilisant làencore le module request mais pas avec cette requête donc celle qu'on a faite ici vers cettepage puisque là on a bien les films qui sont affichés mais il faut utiliser le javascript
00:00:13 :donc il faudrait par exemple utiliser playwright qui est un émulateur de navigateur qu'on peutfaire tourner en arrière-plan sans avoir besoin d'ouvrir le navigateur donc ça fonctionneraitpuisque ça nous permettrait d'exécuter le javascript et d'avoir accès aux films maisnous on va être un petit peu plus malin que ça puisque là si je fais un clic droit inspect
00:00:29 :je pourrais une fois que j'ai récupéré avec javascript tous les éléments de la page allercibler les éléments et là on voit que dans le html on a par exemple dans CardInfo ici toutesles informations qui sont retournées au format json mais dans une chaîne de caractère donc il
00:00:43 :faudrait faire un petit peu de manipulation avec tout ça on pourrait aussi aller récupérer avecla classe MovieCardLinks ici l'url du film donc on peut finalement retrouver toutes ces informationsici mais ce qu'il faut vous dire c'est que quand vous avez un site qui affiche des données commeça avec du javascript en frontend on peut supposer que les données elles sont retournées
00:01:00 :du back-end en json et qu'elles sont affichées donc avec un framework javascript comme parexemple React. Ce qu'on peut faire c'est donc aller regarder dans les requêtes pour aller
00:01:09 :récupérer directement à la source les données json avec le point d'API qui est utilisé donc làbien sûr il faut rester dans le scrapping ethics c'est à dire qu'il faut aller regarder est-ce quecet API est protégé quelles sont les conditions d'utilisation dans ce cas-ci j'ai vérifié pournos en allant voir dans le robots.txt où ici on a toutes les conditions donc d'utilisation
00:01:27 :termes et conditions on a la politique de privacité aussi qui est disponible ici j'airegardé dans tout ça et je n'ai rien vu qui faisait référence à cet API. Nous là dans ce
00:01:36 :cas-ci on est encore sur un cadre éducationnel on ne va pas non plus récupérer de données quisont privées tout ce que vous avez ici c'est public n'importe qui peut y accéder et le faitd'utiliser l'API va moins surcharger le site finalement parce que plutôt que de chargertoutes les ressources qui sont ici donc charger tout ce qu'on va avoir dans l'onglet network si
00:01:52 :je fais une actualisation vous allez voir qu'il y a beaucoup de choses ici. Nous ce qu'on va fairec'est directement aller faire une seule requête vers l'API donc dans ce cas-ci je vais faire celaje vais filtrer toutes les requêtes ici pour afficher uniquement celles qui sont en Fetch
00:02:03 :XHR donc je vais grossir un petit peu pour que vous voyez mieux là on a un filtre et vous voyezqu'on retrouve ici une seule requête qui a été faite avec Fetch et si on clique dessus on vavoir plus d'informations et là comme par magie vous voyez qu'on a vraiment tout ce qui nous
00:02:16 :intéresse qui est directement formaté en JSON. Si on va voir la requête vous voyez que c'estcette requête ici qui est une requête vers GraphQL donc c'est quelque chose qui nous permetd'exécuter des requêtes vers une base de données et on va pouvoir récupérer avec une simple requêteGet vers cette URL tous les éléments comme ça au format javascript et là vous voyez qu'on a dans
00:02:34 :Data la liste de tous les éléments avec leur identifiant unique, les titres, le director doncle réalisateur, la durée, l'image etc etc donc on a vraiment toutes les informations dont on abesoin qui sont directement formatés en JSON ici donc ça va être beaucoup plus simple pour nousde récupérer les informations et de filtrer uniquement ce qui nous intéresse directement à
00:02:54 :partir du JSON plutôt que de faire du scrapping, d'aller charger un navigateur avec du javascriptet ensuite d'aller fouiller et faire un script qui serait un peu plus compliqué pour aller fouillerici en ciblant les classes etc etc puisque vous voyez finalement que toutes ces informations seretrouvent également ici il n'y a pas de secret tout ce qu'on va chercher dans le back-end on
00:03:12 :l'affiche finalement dans le front-end mais tout ça ça communique et on peut récupérer lesinformations de différentes façons donc ce qu'on va faire ici c'est récupérer avec une requêtedirectement ces données avec request donc on va retourner dans Cursor et je vais ouvrir ici monpetit panneau AI donc je vais accepter tous les changements que j'avais fait ici on a bien le
00:03:32 :script qui a été fait donc correctement dans la dernière partie on a bien notre html qui estrécupéré mais moi ce que je veux faire donc c'est pas ça je vais supprimer les fichiers html que j'aiet je vais lui dire ici donc on va refaire un prompt ok donc j'ai remarqué qu'on peut récupérer
00:03:48 :toutes les données via un endpoint ça retourne toutes les infos du film en json modifie lescript pour l'appeler main.py et pour aller récupérer ces données et les stocker sur le
00:03:58 :disque dans un fichier json voilà donc tous les données via un endpoint ça retournetoutes les infos en json et voilà l'endpoint en question et là je vais lui passer donc leendpoint qu'on a trouvé donc c'est celui qui était dans notre onglet ici dans headers je vaisle copier je vais prendre tout ça et je vais le remettre dans Cursor donc là via le endpoint
00:04:19 :voilà ça retourne je me suis mal exprimé ici bon après c'est pas très grave vous allez voir quec'est ça qui est incroyable avec les IA on peut faire des fautes d'orthographe et tout et ça nepose pas de problème il comprend ce qu'on veut dire donc je lui envoie ça submit là il va aller
00:04:32 :modifier donc mon fichier et modifier le endpoint donc voilà pour récupérer les données donc làon va attendre un petit peu donc là il m'a fait un nouveau fichier main.py on retrouve à peu près
00:04:42 :la même logique là il va faire une requête il va vérifier si la requête a réussi si c'est lecas il va sauvegarder tout ça dans un fichier json donc cette fois ci avec json.dump et on va
00:04:53 :regarder tout ça donc là normalement c'est bon j'avais un petit doute sur le dump ou dumps maissi je me souviens bien c'est bien load et dump sans les s quand on veut écrire dans un fichierdonc ça me semble tout bon là il va supprimer le fichier donc il me demande d'accepter puisqu'il
00:05:06 :va faire une opération qui est destructive même si on peut à tout moment revenir en arrière encliquant sur restore ici il demande quand même une confirmation et heureusement là on va retesternotre script donc je fais run command ça va relancer notre fichier dans le terminal on va
00:05:20 :voir si tout est bon donc il a créé un nouveau fichier voilà conserver le même user agent c'estbon vérifier ok donc je vais accepter on va voir ce qu'on a dans le script normalement pas desurprise on a notre endpoint ici on a toujours notre user agent qui est là la requête donc tout
00:05:35 :ce qu'on avait vu et si on va voir le movies là on retrouve bien donc toutes les données que jevous avais montré qui étaient disponibles dans brave sauf que là on les a directement sur ledisque au format json donc vous voyez qu'on a déjà fait un énorme travail qu'on a évité d'avoir à
00:05:48 :faire du scrapping trop compliqué avec playwright directement on a tout ce qu'il nous faut ici etce qu'on va pouvoir faire maintenant c'est réduire un petit peu la taille de ces données parce qu'onn'a pas forcément besoin de tout là par exemple vous voyez le synopsis ça va pas forcément
00:05:59 :m'intéresser le réalisateur la distribution tout ça ça m'intéresse pas donc je vais faire une listedes choses qui m'intéressent et dans la prochaine partie on va faire un script qui nous permet derécupérer à partir de ces données un autre fichier json beaucoup plus petit avec uniquement lesdonnées qui nous intéressent
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.