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

Ғылым және технология

Web Scraping - Éviter la détection avec Python
Dans cette vidéo tu vas apprendre comment éviter la détection lorsque tu fais du web scraping avec python, en particulier en utilisant les headers HTTP (dont le user-agent) et des proxies.
Retrouve le code de la vidéo sur mon github : github.com/amaury-joycode/tut...

Пікірлер: 76

  • @robydivincenzo821
    @robydivincenzo821Ай бұрын

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

  • @lolman7170
    @lolman71702 жыл бұрын

    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 жыл бұрын

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

  • @user-zj8rv2cz8v
    @user-zj8rv2cz8v Жыл бұрын

    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_

    Жыл бұрын

    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 :)

  • @maet3906
    @maet39068 ай бұрын

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

  • @cost4s
    @cost4s Жыл бұрын

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

  • @Joycode_

    @Joycode_

    Жыл бұрын

    Un grand merci !

  • @user-rr2ml2fm1p
    @user-rr2ml2fm1p10 ай бұрын

    Excellent tuto comme d'habitude.

  • @Joycode_

    @Joycode_

    10 ай бұрын

    Merci beaucoup !

  • @antoinehasselin864
    @antoinehasselin864 Жыл бұрын

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

  • @Joycode_

    @Joycode_

    Жыл бұрын

    Merci beaucoup !

  • @0xNothing
    @0xNothing2 жыл бұрын

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

  • @Joycode_

    @Joycode_

    2 жыл бұрын

    Merci beaucoup pour ton commentaire !

  • @manulabricole
    @manulabricole Жыл бұрын

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

  • @Joycode_

    @Joycode_

    Жыл бұрын

    Merci à toi 😊

  • @mouradlaraba
    @mouradlaraba Жыл бұрын

    Excellente vidéo merci beaucoup🙏

  • @Joycode_

    @Joycode_

    Жыл бұрын

    Merci à toi !

  • @naeryx1478
    @naeryx14782 жыл бұрын

    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 ?

  • @anthonygalvandevesa-lardet6783
    @anthonygalvandevesa-lardet678311 ай бұрын

    Merci beaucoup pour ce tuto 🙏

  • @Joycode_

    @Joycode_

    11 ай бұрын

    Merci à toi !

  • @huguytughffcvfdxv
    @huguytughffcvfdxv2 жыл бұрын

    Merci cool comme vidéo

  • @falconarea
    @falconarea Жыл бұрын

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

  • @Joycode_

    @Joycode_

    Жыл бұрын

    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

    Жыл бұрын

    @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?

  • @anselmezodehougan5862
    @anselmezodehougan58622 жыл бұрын

    Simple et concis🎆

  • @Joycode_

    @Joycode_

    2 жыл бұрын

    Merci beaucoup !

  • @SuperWac1937
    @SuperWac193711 ай бұрын

    Franchement, merci😊

  • @Joycode_

    @Joycode_

    11 ай бұрын

    Avec plaisir 😊

  • @SantaDoesntExist
    @SantaDoesntExist2 жыл бұрын

    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 😊

  • @ran-3juliencansell345
    @ran-3juliencansell345 Жыл бұрын

    Merci

  • @maloukemallouke9735
    @maloukemallouke973511 ай бұрын

    excellent

  • @karimelamili2894
    @karimelamili28942 жыл бұрын

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

  • @Joycode_

    @Joycode_

    2 жыл бұрын

    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 :)

  • @seifelislam213
    @seifelislam2132 жыл бұрын

    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/

  • @cedricsong6012
    @cedricsong6012 Жыл бұрын

    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

    11 ай бұрын

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

  • @user-zj8id7kc1r
    @user-zj8id7kc1r2 жыл бұрын

    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.

  • @jean-michelprou3775
    @jean-michelprou3775 Жыл бұрын

    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

  • @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_

    Жыл бұрын

    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.

  • @guirardpierre4279
    @guirardpierre42792 жыл бұрын

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

  • @Joycode_

    @Joycode_

    2 жыл бұрын

    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 ?

  • @marcjammeron973
    @marcjammeron973 Жыл бұрын

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

  • @Joycode_

    @Joycode_

    Жыл бұрын

    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).

  • @badboy67shakur
    @badboy67shakur6 ай бұрын

    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 ?

  • @salecksaghir7271
    @salecksaghir727110 ай бұрын

    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_

    10 ай бұрын

    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.

  • @martindupont1244
    @martindupont12442 жыл бұрын

    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 👍

  • @arnaques-tuto-informatique

    @arnaques-tuto-informatique

    Жыл бұрын

    ​@@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

  • @laythevador
    @laythevador Жыл бұрын

    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_

    Жыл бұрын

    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 :)

  • @samythegrappler3297
    @samythegrappler32977 ай бұрын

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

  • @guirardpierre4279
    @guirardpierre42792 жыл бұрын

    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

  • @ndulucalvassman2294
    @ndulucalvassman22942 жыл бұрын

    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 жыл бұрын

    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.

  • @classique_burgouz
    @classique_burgouz8 ай бұрын

    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_

    8 ай бұрын

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

  • @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

    8 ай бұрын

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

  • @tianel15
    @tianel15 Жыл бұрын

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

  • @Joycode_

    @Joycode_

    Жыл бұрын

    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 ...

Келесі