Comment faire des Requêtes Anonymes en utilisant TorRequests et Python

Arrêtez de copier le net. Scrapez le.

 

Comment faire des Requêtes Anonymes en utilisant TorRequests et Python

Tor est assez utile pour faire des requêtes sans révéler son adresse IP. C’est donc particulièrement utile lorsque vous faites du web scraping, et que vous souhaitez collecter de la donnée sans dévoiler votre identité. Dans ce tutoriel nous allons voir comment utiliser un wrapper de Python, qui va permettre de réaliser ce tour de force.

Qu’est-ce que Tor ?

Tor est un loiciel libre qui permet de  communiquer de façon anonyme. Le nom, Tor, est un acronyme du nom utilisé à l’origine pour désigner le projet : « The Onion Project ». En termes techniques, Tor dirige le trafic Internet vers un réseau de couches, sept couches pour être précis, qui permet de cacher la localisation et l’usage d’un utilisateur. Plusieurs couches d’onion, voilà l’essence de la liberté.

scraping-tor-0b05bzd

Installer Tor

TorRequests a une dépendance vis à vis de Tor. Il faut donc d’abord installer Tor.

Pour les utilisateurs de Mac OS, il faut d’abord installer l’installateur Homebrew, puis installer Tor. Pour les autre systèmes d’exploitation, rendez-vous ici : https://www.torproject.org/docs/installguide.html.en.

Vous allez trouver un fichier de configuration Tor à l’adresse suivante : 

Il suffit de renommer le fichier, en enlevant le .sample :

Il suffit ensuite de lancer Tor, avec la commande suivante: 

Bravo ! Tor fonctionne désormais sur votre système d’exploitation. Mais votre trafic internet n’est pas encore redirigé. 

Pour que l’ensemble de votre trafic soit routé vers Tor, nous allons avoir besoin d’ajuster les réglages de notre réseau de proxy. Et pour ce faire nous allons simplement utiliser l’outil Préférences Système de MacOS.

Paramétrer le réseau via les Préférences Système de MacOS

Vous pouvez réaliser le paramétrage en allant à Préférences Systèmes > Réseau et en créan un port réseau spécifique pour Tor.

  • Depuis la liste déroulante en haut, sélectionner Modifier les configurations…
  • Créer un nouveau réseau en appuyant sur le bouton plus, et l’appeler Tor. Appuyer sur Terminé.
  • Aller à Avancé > Proxys, et sélectionner SOCS Proxy et ajouter les valeurs suivantes : 
  • SOCKS proxy server : localhost
  • Port : 9050
scraping-tor-1b05bzd

Après avoir cliquer sur OK, vous pourrez facilement passer d’une configuration à l’autre depuis la barre de menu  > Location dès que vous souhaitez démarrer Tor.

Qu’est-ce que TorRequest ?

TorRequest est un wrapper, c’est à dire une surcouche de Python qui enveloppe Tor, et permet de réaliser des requêtes via Tor. Tout le projet est disponible ici : https://github.com/erdiaker/torrequest.

Pour l’installer avec Python, rien de plus simple : 

Réalisons maintenant plusieurs requêtes pour évaluer notre adresse IP, en utilisant TorRequests.

Voilà le code : 

Et.. attention les yeux…

scraping-tor-2b05bzd

Et voilà, nous sommes passés de l’IP 176.158.236.129 à l’IP 197.231.221.211 ! La croquant de l’oignon, la force de l’anonymat. Attention les yeux…

Si vous avez besoin de professionnels pour collecter les données de sites complexes, contactez nous grâce au formulaire ci-dessous.

Avertissement: Tout code fourni dans nos tutoriels est destiné à des fins d’illustration et d’apprentissage uniquement. Nous ne sommes pas responsables de la façon dont il est utilisé et n’assumons aucune responsabilité pour toute utilisation préjudiciable du code source. La simple présence de ce code sur notre site n’implique pas que nous encourageons le scraping ou l’extraction de données des sites référencés dans le code et le tutoriel qui l’accompagne. Les tutoriels ne font qu’illustrer la technique de programmation des scrapers web pour les sites internet populaires. Nous ne sommes pas obligés de fournir un support pour le code, cependant, si vous ajoutez vos questions dans la section des commentaires, nous pouvons vous y répondre périodiquement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *