Web Scraping - Éviter la détection ! (Python)

Поділитися
Вставка
  • Опубліковано 5 лют 2025

КОМЕНТАРІ • 88

  • @LiamCook-b1b
    @LiamCook-b1b 5 днів тому +19

    Vous avez déjà intégré du code de scraping avec une API comme HasData ? Je serais curieux d'entendre vos avis sur comment cela peut simplifier le processus.

  • @lolman7170
    @lolman7170 2 роки тому +3

    C trop bien mdrr, j'ai galeré pendant 2 mois avant de trouver la vidéo. Je t'aime mec t un bon j'ai juré. Continue comme ca

    • @Joycode_
      @Joycode_  2 роки тому +1

      Merci beaucoup !
      Ravi d'avoir pu t'aider :)

  • @albertalbert-w5y
    @albertalbert-w5y Рік тому +3

    Un grand bravo pour cette vidéo! Du code très propre, une vraie pédagogie même en utilisant des outils plus avancés... super intéressant!!!
    J'espère que tu continueras à faire des vidéos sur Python! Une seule façon de le savoir... je m'abonne! :)

    • @Joycode_
      @Joycode_  Рік тому +1

      Merci beaucoup !
      Je viens de changer de boulot (toujours dans le développement) donc j'ai fait une petite pause, mais je reprends très vite :)

  • @robydivincenzo821
    @robydivincenzo821 7 місяців тому

    J'ai adoré ta vidéo très utile et pro. Je débute en Scraping et cela est très instructif. 😊

  • @manulabricole
    @manulabricole Рік тому +1

    Merci beaucoup pour ces infos. Je teste tout ca ;) Félicitations

  • @cost4s
    @cost4s Рік тому +1

    Très très propre, merci beaucoup j'espère que tu vas continuer tes vidéos très quali 👏

  • @phildid
    @phildid Рік тому +1

    Excellent tuto comme d'habitude.

  • @naeryx1478
    @naeryx1478 2 роки тому +1

    t'es vidéos sont incroyable merci beaucoup

    • @Joycode_
      @Joycode_  2 роки тому

      Merci à toi !

    • @naeryx1478
      @naeryx1478 2 роки тому

      @@Joycode_ bonjour, j'aimerais savoir si tu pourrais m'aider, car depuis ta vidéo, j'ai essayé de créer un script python me permettant d'aller sur le site nike et de mettre directement un produit dans mon panier, mais je bloque à la partie ou je dois accepter les cookies. il parait qu'il y a une "" mais rien à faire, je n'arrive pas passer cette étapes as-tu une technique ou bien une explication ?

  • @maet3906
    @maet3906 Рік тому +1

    très précis, du contenu de qualité

  • @antoinehasselin864
    @antoinehasselin864 Рік тому +1

    Très bonne vidéo, les explications sont vraiment top !

  • @0xNothing
    @0xNothing 2 роки тому +1

    *Trop bien ta video je commente rarement mais je kiff l'explication*

    • @Joycode_
      @Joycode_  2 роки тому

      Merci beaucoup pour ton commentaire !

  • @falconarea
    @falconarea 2 роки тому

    I don't speak french, but this video was very very helpfull, thank you very much. Greetings from Chile

    • @Joycode_
      @Joycode_  2 роки тому

      Thanks a lot!
      All my code is accessible on Github (link in the description) should you need to have a second look at it :)

    • @falconarea
      @falconarea 2 роки тому

      @Joycode Great! I tried your code but I was instantly blocked by the page i'm trying to scrap. Do you got any more tricks to avoid detection?

  • @mouradlaraba
    @mouradlaraba Рік тому +1

    Excellente vidéo merci beaucoup🙏

  • @MrChocoMik
    @MrChocoMik 5 місяців тому

    Bravo pour cette vidéo !

  • @anthonygalvandevesa-lardet6783

    Merci beaucoup pour ce tuto 🙏

  • @bastienmaurieres7120
    @bastienmaurieres7120 5 місяців тому

    Bonjour, encore une fois, super tuto !!! J'ai deux questions. Si on utilise webdriver avec Selenium, a-t-on besoin de changer son header ? Egalement, peut-on utilise un timeout au lieu de se servir d'un proxy ?

  • @yohancavaro1849
    @yohancavaro1849 4 місяці тому

    Merci pour cette vidéo, c'est très clair ! Je tente du scraping sur le site leboncoin, cependant je suis bloqué dès la première requête en passant par selenium. Est-ce que tu aurais une idée de la cause ?

  • @huguytughffcvfdxv
    @huguytughffcvfdxv 3 роки тому +2

    Merci cool comme vidéo

  • @chrisder1814
    @chrisder1814 Місяць тому

    Bonjour est-ce que tu pourrais m'expliquer quelle est la différence entre le fait d'utiliser une application ou d'utiliser un script python pour scrapper ?

  • @badboy67shakur
    @badboy67shakur Рік тому

    bonjour joycode j'ai essayé votre code aujourd'hui mais la seul réponse que je recois quand je test mon user-agent (5 minutes 36) de la vidéo c'est . Est ce normal ?

  • @SantaDoesntExist
    @SantaDoesntExist 2 роки тому

    Bravo! Vidéo claire et rapide avec de bonnes explications, la meilleure que j'ai pu trouver. Qu'est ce que tu utilises comme soft pour mettre en écran ton notebook de cette manière ?

    • @Joycode_
      @Joycode_  2 роки тому

      Merci beaucoup !
      J'utilise l'extension Rise pour transformer le notebook en présentation. Après j'ai modifié le CSS moi-même pour avoir ce rendu, à toi de jouer avec si tu veux ton propre look & feel 😊

  • @SuperWac1937
    @SuperWac1937 Рік тому

    Franchement, merci😊

  • @anselmezodehougan5862
    @anselmezodehougan5862 3 роки тому +1

    Simple et concis🎆

  • @marcjammeron973
    @marcjammeron973 2 роки тому

    Bonjour, merci pour cette vidéo
    petite question : Est t'il possible de set des user agent avec sélénium ?

    • @Joycode_
      @Joycode_  2 роки тому

      Oui c'est un header donc on peut normalement le préciser au moment de la requête (GET, POST,...).
      Cela dit je n'ai pas testé pour voir si cela écrase bien le user-agent par défaut du driver utilisé (Firefox dans notre exemple).

  • @salecksaghir7271
    @salecksaghir7271 Рік тому

    Bonjour, super vidéo ! Merci pour l'explication. Cependant, pourquoi n'utilisons-nous pas Chrome directement au lieu de Firefox ? De plus, lorsque j'appuie sur F12, cela n'affiche rien, cela augmente simplement le volume.

    • @Joycode_
      @Joycode_  Рік тому

      Tu as probablement le Fn lock activé, appuie sur la touche Fn avant d'appuyer sur F12 :)
      C'est juste un exemple, on peut également utiliser un webdriver chrome ou chromium, les options seront juste un peu différentes.

  • @user-zj8id7kc1r
    @user-zj8id7kc1r 2 роки тому +1

    super video. par contre j'ai l'impression que les proxy gratuits ne tiennent pas longtemps. que conseilles tu pour avoir un proxy stable?

    • @Joycode_
      @Joycode_  2 роки тому

      Je ne connais pas de solution légale autre que de payer un service de proxy malheureusement.
      La difficulté est qu'il faut être capable de gérer les bans d'IP, donc c'est difficile à monter soi-même.

  • @legerlaurent9510
    @legerlaurent9510 Рік тому

    Hello, super clair!!! Bravo;)))
    Mon objectif est de réaliser un bot pour click (sélénium, cliker...). Est ce que trafiquer les headers est suffisant?
    Merci pour ta réponse.

    • @Joycode_
      @Joycode_  Рік тому +1

      Tout va dépendre des mécanismes de détection mis en place par le site sur lequel le bot doit fonctionner.
      Attention néanmoins dans beaucoup de cas l'utilisation de bot est illégale ou enfreint les conditions d'utilisation des sites, donc renseigne toi avant de faire quoique ce soit sur un site qui n'est pas le tien. Le mieux est en général d'utiliser les API fournies par les sites eux-mêmes.

  • @chrisder1814
    @chrisder1814 4 місяці тому

    Salut j'ai eu quelques idées pour récupérer des produits dans un Google sheet puis faire de la comparaison des prix... Mets je ne suis pas sûr que ces idées soient bonnes, est-ce que tu pourrais me dire ce que tu en penses

    • @Joycode_
      @Joycode_  4 місяці тому

      Toutes les idées peuvent être bonnes, pour le savoir il faut les essayer pas en discuter :)

    • @chrisder1814
      @chrisder1814 4 місяці тому

      @@Joycode_ je ne sais pas comment les essayer, je veux dire je ne me sers pas de python contrairement à toi c'est pourquoi je t'ai écrit pour te demander ton avis

    • @chrisder1814
      @chrisder1814 3 місяці тому

      @@Joycode_ Bonjour j'ai quelques idées d'utilisation de python, de création, et je voudrais que tu me dises ce que tu en penses, est-ce que tu utilises également n8n, uipath ou autre logiciel no code ?
      Est-ce que tu penses qu'il serait possible de récupérer sur une marketplace une liste de produits à vendre puis de les scanner avec une autre liste de produits afin de calculer la différence de prix, la marge que je pourrais me faire…
      Merci

    • @chrisder1814
      @chrisder1814 3 місяці тому

      @@Joycode_ salut

    • @chrisder1814
      @chrisder1814 Місяць тому

      ​@@Joycode_salut

  • @samythegrappler3297
    @samythegrappler3297 Рік тому

    15:07 Ils n’ont pas une API pour ça ? (Dans l’idéal c’est toujours mieux que de scrapper ahah😅)

  • @laythevador
    @laythevador 2 роки тому

    Salut merci pour la video
    J'ai plusieur questions deja la première
    La ligne proxy_list = pd.read_html(response.text)[0]
    Pourquoi avoir mis[0] stp ?
    Deuxième question
    On ne risque pas une attaque man in the middle en utilisant des proxies comme utilisé dans la video ?

    • @Joycode_
      @Joycode_  2 роки тому

      pd.read_html() retourne une liste de DataFrame (les tableaux présents sur la page) et [0] permet d'accéder au premier tableau (celui avec la liste de proxies). Cela dépend de la page du coup.
      Quant à l'attaque MitM oui c'est possible, et de manière générale c'est le cas à chaque fois qu'on utilise un intermédiaire (VPN, proxy, ...) mais pour du scraping c'est peu gênant, on veut juste récupérer des données publiques. Ne pas envoyer de mot de passe ou autre donnée sensibles dans les requêtes en revanche :)

  • @martindupont1244
    @martindupont1244 2 роки тому +1

    Certains sites te bloquent lorsque tu utilises Selenium, car c'est détectable (Chrome par exemple empêche de se connecter automatiquement à un compte Gmail, leboncoin t'empêche d'accéder à la moindre de ses pages, ect). Et je ne crois pas que les headers et la rotation de proxies permettent de résoudre ce problème. Alors existe-t-il une solution?

    • @Joycode_
      @Joycode_  2 роки тому

      Il y a plein d'autres méthodes de détection plus ou moins avancées, tu peux en avoir un aperçu sur pixelscan.net.
      Comme souvent en sécurité, c'est une question d'équilibre entre les compétences du développeur du site et celles du scraper. Il faut y aller étape par étape, essayer avant de conclure etc.

    • @martindupont1244
      @martindupont1244 2 роки тому

      @@Joycode_ merci 👍

    • @arnaque-tuto-informatique-exp
      @arnaque-tuto-informatique-exp 2 роки тому +1

      ​@@Joycode_ salut exact mais aussi une question d'avance technologique ;) eh ouai bcp des gros site sont protégés contre le scrap...technique qui devient de plus en plus populaire depuis ma loin de 10 ans

  • @jean-michelprou3775
    @jean-michelprou3775 Рік тому +1

    Super vidéo. En revanche comment fait on pour changer les headers avec selenium ?

    • @Joycode_
      @Joycode_  Рік тому

      Ce n'est pas possible directement, en tous cas pas facilement. Une alternative à selenium permet de le faire en revanche : github.com/wkeeling/selenium-wire

  • @seifelislam213
    @seifelislam213 2 роки тому

    Bravo et merci pour les informations !!
    S'il te plaît tu peux me dire avec quel outil tu fais tes présentations ?

    • @Joycode_
      @Joycode_  2 роки тому

      Merci beaucoup !
      J'utilise jupyter notebook avec l'extension RISE :
      rise.readthedocs.io/en/stable/

  • @classique_burgouz
    @classique_burgouz Рік тому

    J'ai suivi les différentes étapes et pourtant certains sites me renvoient toujours l'erreur 403. Avez vous une idée de comment faire ?

    • @Joycode_
      @Joycode_  Рік тому

      403 signifie "unauthorized" ce qui veut probablement dire que le site nécessite un login ou autre forme d'authentification

  • @cedricsong6012
    @cedricsong6012 2 роки тому

    Hello, super vidéo, je voulais juste savoir comment faire en sorte de changer le user_agent à chaque fois avec le fichier que tu as mis à disposition ?

    • @yovalo3382
      @yovalo3382 Рік тому

      tu peux faire de manière aléatoire avec liste [int(len(liste)*random.random())]

  • @HoulemanyBAKAYOKO
    @HoulemanyBAKAYOKO Місяць тому

    t'es tres bon tu nas pas le" temps pôur les blaabla bla

  • @karimelamili2894
    @karimelamili2894 3 роки тому

    Super vidéo! Pourrais tu faire un tutoriel sur Scrapy?

    • @Joycode_
      @Joycode_  3 роки тому +1

      Merci beaucoup !
      J'y réfléchis, ce que je reproche à scrapy c'est que sa configuration est très spécifique et donc ce qu'on apprend en l'utilisant ne s'applique pas facilement à d'autres domaines, au contraire de Sélénium et requests :)

  • @ndulucalvassman2294
    @ndulucalvassman2294 2 роки тому

    Je souhaite utiliser Chrome comme navigateur et lorsque je spécifie des capabilities au driver créé de Chrome, python me dit que l'argument 'capabilities' n'était pas attendu... D'où vient l'erreur?

    • @Joycode_
      @Joycode_  2 роки тому +1

      Le driver Chrome de selenium ne fonctionne pas avec les mêmes paramètres, on utilise des options et non des capabilities.
      Par exemple : stackoverflow.com/questions/55582136/ddg#55582859

    • @ndulucalvassman2294
      @ndulucalvassman2294 2 роки тому

      @@Joycode_ Superbe! Je vous remercie pour votre réponse rapide!
      Cependant, je ne trouve pas comment modifier les headers avec le driver Chrome de selenium. Faut-il également trouver la commande spécifique pour l'ajouter en argument du Chrome_Options() ou cela se fait-il autrement?
      Par ailleurs, est ce que si j'utilise toujours les même headers lorsque je fais du WebScrapping me rend vulnérable? ou simplement le fait de me cacher derrière une autre adresse ip (grâce au proxy) suffit amplement lorsqu'e cela est combiné aux faux headers que j'ai donné au programme?

    • @Joycode_
      @Joycode_  2 роки тому

      Tout va dépendre des mécanismes de détection mis en place par le site que tu scrapes.
      L'avantage du proxy c'est qu'on moins ton IP normale ne peut pas être blacklist. Après tu peux quand-même être détecté.
      Honnêtement je te conseille d'utiliser le Firefox driver et de mettre des headers chrome au pire. Je n'utilise pas trop le Chrome driver donc je ne sais pas si on peut facilement changer les headers.

  • @guirardpierre4279
    @guirardpierre4279 2 роки тому

    tressssssssssssss bon .......ben j'essaye de faire un script pour les envoie d'email avec un smtp , mais quand je fini de creer le scrypte et que je le lance un autre scrypte se creer automatiquément qui est chiffrer.... je peux avoir une aide pour evité cela et envoye un masse d'email via smtp

  • @maloukemallouke9735
    @maloukemallouke9735 Рік тому

    excellent

  • @guirardpierre4279
    @guirardpierre4279 3 роки тому

    merci vraiment tu m'aides beaucoup en python ....... comment supprimé un mots de passe dans un script python ?

    • @Joycode_
      @Joycode_  3 роки тому +1

      Tu as plusieurs méthodes : soit tu demandes à l'utilisateur de le saisir au lancement du programme (avec getpass par exemple), soit tu récupères un mot de passe stocké ailleurs (fichier, réseau,...).
      C'est pour faire quoi ?

  • @ran-3juliencansell345
    @ran-3juliencansell345 2 роки тому

    Merci

  • @TheTirailleur
    @TheTirailleur Рік тому

    Je me tente à scrap chatGPT. Je vois que la tâche à l'air plus corriace que d'habitude. Je vais voir si grâce à ta vidéo j'arrive à passer.

    • @Joycode_
      @Joycode_  Рік тому

      Le contenu de ChatGPT est dynamique (il change en fonction de ce que tu lui demandes) donc pas vraiment éligible au scraping.
      Tu peux utiliser directement l'API REST de OpenAI en revanche, elle est faite pour ça.

    • @classique_burgouz
      @classique_burgouz Рік тому

      Le contenu dynamique n'est pas possible à scrapper ?@@Joycode_

  • @tianel15
    @tianel15 Рік тому +1

    bonsoir grace a vos video je fait beaucoup de progres mais sa fait 3 mois je bloque pourriez vous m aider

    • @Joycode_
      @Joycode_  Рік тому +1

      Tu bloques sur quoi ?
      Pour progresser le mieux c'est de choisir un petit projet simple et de le réaliser en s'appuyant sur la documentation python, des vidéos, stackoverflow.com etc.

    • @tianel15
      @tianel15 Рік тому

      @@Joycode_ en faite pour moi mon code est bon je scrape plusieur fiche il scrape la première j ai les infos rechercher et à partir de la deuxième la page ecrit cloudflare et la j arrive plus à rien en tout cas merci à toi de repondre

  • @massinissahammaz7734
    @massinissahammaz7734 Рік тому

    sympat tt ca mais moi j me fait detecter quand meme ...