Basculer de requests à Bright Data
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte00:00:00 :Dans cette partie, on va réutiliser notre intelligence artificielle parce qu'il y a pas mal de petites modifications à faire ici.Je vais également changer ça pour ne pas le mettre directement dans le script, mais le mettre dans mon fichier d'environnement.
00:00:11 :Donc ça je peux le faire à la main, on va mettre search path par exemple.Et voilà, alors je pense qu'il vaut mieux quand même mettre des guillemets ici pour la chaîne de caractère,quoiqu'on en a pas mis pour les autres, donc ça devrait marcher après dans les chemins.
00:00:22 :Il se peut qu'on ait ici des espaces ou des choses du genre, donc je préfère préventivement mettre des guillemets ici.Et là on va aller chercher notre search path, donc on va faire os.getenv, et on va chercher cette variable qui est dans le .env.
00:00:37 :Donc maintenant qu'on a fait ça, on peut relancer pour s'assurer que tout fonctionne bien de nouveau, c'est bien le cas,et on va utiliser cette fois-ci notre IA.
00:00:44 :Donc qu'est-ce qu'on va lui dire ? On va rajouter notre fichier main en contexte,même si généralement il va le récupérer lui-même la plupart du temps.
00:00:52 :Donc je peux cliquer ici sur le fichier pour cacher ou cliquer sur collapse, et là on va lui dire ce qu'on veut faire.Ce qu'on va vouloir faire c'est utiliser un module qui s'appelle argpars, argpars comme ceci, c'est un truc assez dur à dire,pour pouvoir directement depuis la ligne de commande utiliser ou ne pas utiliser BrightData.
00:01:09 :Donc je vais faire mon prompt.Je veux modifier le script pour pouvoir directement depuis la ligne de commande avec le module argpars,choisir d'utiliser ou non le réseau de proxy résidentiel de BrightData.
00:01:21 :On va déjà mettre ça, là forcément il n'a pas reconnu ça, donc pouvoir, voilà, le réseau de BrightData.Rajoute donc une option, on va mettre par exemple no bd et use bd,deux options du coup, on va dire rajoute deux options, no bd et use bd, pour pouvoir faire le toggle.
00:01:42 :Tu peux également rajouter une variable d'env qui sera utilisée par défaut si jamais je ne donne pas d'option en ligne de commande.Donc on va déjà lui donner ça à faire et on va voir par la même occasion s'il peut utiliser mon fichier .env,
00:02:00 :puisque j'avais un petit doute là dessus, donc on va le laisser travailler.Donc voilà il a terminé, il a même créé des fonctions, donc on va passer en revue ce qu'il a fait.
00:02:08 :Donc il nous dit qu'il a ajouté le module, parfait, il a créé une fonction effectivement pour isoler la configuration du proxy,fonction main qui contient la logique principale c'est bien aussi, les options donc celles qu'on avait précisé,et la variable d'environnement on va voir s'il l'a ajouté, alors il ne l'a pas ajouté,
00:02:23 :ah si il l'a ajouté ici, alors il ne me met pas le diff, mais ah non c'est nous qu'il a vu en ajouter,si je ne me trompe pas je crois que oui, je l'avais déjà ajouté préventivement, donc en fait il n'a pas eu besoin de le faire.
00:02:33 :Amélioration de la gestion des erreurs, ok donc ça on ne sait pas trop où c'est, on va aller voir,je vais faire un petit peu de place parce que là on n'a pas beaucoup de place ici.
00:02:43 :La session, alors il nous fait un if use proxy, pas d'utilisation de proxy, et il nous refait en fait le try except,donc il tient absolument à faire cette gestion des erreurs, on la fera un petit peu mieux je pense par la suite,mais soit il l'a fait donc on va accepter, et on va voir ce que ça donne,
00:02:58 :donc on a ici un peu du code en escalier avec le try, le if, tout ça, là encore on pourra faire une passe de refactoring,de toute façon le script va pas mal évoluer, vous allez voir on va faire une partie de refactoring,où on va faire pas mal de décisions de notre côté, donc ça aura l'occasion de changer,
00:03:14 :on ne va pas trop modifier pour l'instant on va avoir la logique principale qui fonctionne.Donc là qu'est ce qu'il fait, on est dans la fonction main, donc il a une variable use proxy qui doit venir effectivement de args,donc args qui sont ce qu'on a récupéré avec le parseur qui est comme je vous avais dit la bibliothèque args parse,
00:03:30 :qui va nous permettre de récupérer des éléments qu'on passe en ligne de commande,donc là si vous avez jamais utilisé ça fait peut-être un peu peur,mais vous voyez en fait que tout simplement ça va nous permettre d'ajouter et de reconnaître des arguments qu'on va ensuite utiliser,donc vous voyez qu'une fois qu'on a récupéré cet objet args, on va pouvoir utiliser use bd et no bd,
00:03:48 :qui vont nous permettre de savoir si on veut utiliser write data ou non,là d'ailleurs vous voyez qu'encore une belle illustration du fait qu'il ne fait pas du code forcément très propre,plutôt que de faire un if avec un else quand on a un booléen qui est défini comme ça,
00:03:59 :ce qu'on peut faire c'est tout simplement directement récupérer cette information et dire que use proxy va être égal à args.usebd.Alors ça peut être bien de le faire dans ce cas-ci parce qu'on pourra avoir d'autres options,on pourra avoir use bd, no bd, on pourra avoir une autre option avec un autre elif dans ce cas-ci,
00:04:14 :ça pourrait être intéressant d'avoir potentiellement une autre valeur,là comme je vous dis de nouveau comme c'est des bouléens on ne peut pas avoir d'autres valeurs que true ou false,donc ici là encore comme je vous dis on ne va pas faire trop de refactoring,mais je pourrais juste mettre ici args.usebd pour savoir si on utilise le proxy de write data ou non.
00:04:32 :Et en fait là je viens de me rendre compte de la bêtise que je viens de faire,en le disant parce qu'en fait on a ici cette variable qui est déjà définie,donc là on l'a redéfinie et c'était pour avoir ce fonctionnement justement,pour savoir si on utilise la variable d'environnement ou non.
00:04:47 :Donc là du coup ça casse un peu cette logique parce que finalement on définit avec la variable d'environnementqui est dans le fichier .env et ensuite on supprime cette ligne là puisqu'on redéfinit la variable avec usebd.
00:04:59 :Donc ce que je vais faire c'est plutôt une structure conditionnelle,on va dire donc si on a args.usebd, là dans ce cas-ci useproxy va être égal à true,
00:05:07 :si on a donc on va refaire finalement ce qu'on avait un peu là on va dire useproxy égal à falseet on va mettre un else tout simplement et dans le else on va tout simplement mettre le useproxycomme ça si on n'a ni l'un ni l'autre, donc si on n'a aucun des deux arguments ici,
00:05:21 :et bien on va tout simplement revenir sur la valeur qui est dans le fichier d'environnement.Donc on va tester tout ça, je vais faire un commande s pour sauvegarder,j'ouvre le terminal et là on va faire python main.py,
00:05:34 :on va lui dire no bd pour voir sans Bright Data,donc là on a bien un petit print qui a été ajouté,on verra par la suite aussi pour ajouter un logger un peu plus performant que juste un print,mais on n'a bien ici pas d'utilisation de proxy et vous voyez que ça a été assez rapide
00:05:47 :et je pense que si je mets usebd ça va être un petit peu plus lent,vous voyez on a bien l'utilisation du proxy et effectivement c'est un petit peu plus lent.
00:05:53 :Mais dans les deux cas de figure ça marche, on a donc bien nos fichiers qui sont créés iciavec les films qui sont récupérés, donc ça fonctionne bien,on a quelque chose qui commence à être assez intéressant,avec tout ça qui est découpé en deux fonctions,avec le getproxy et dans le main qu'est ce qu'on fait ?
00:06:09 :Et bien on va récupérer les arguments, on vérifie donc si on utilise le proxy,on a bien toujours notre requête avec la session,je vérifie toujours en fait, ça c'est une bonne pratique aussi de ne pas trop fermer les yeuxet considérer que tout est bon, de bien relire le code quand même
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.