Python requests über Tor verwenden

English Deutsch

Problem:

Du möchtest die Python-requests-Bibliothek über eine Tor-Verbindung unter Verwendung des Tor-eigenen SOCKS-Proxys verwenden.

Lösung

Stelle zunächst sicher, dass Tor tatsächlich läuft. Wir verwenden Port 9050 (der Standard) als SOCKS-Port für dieses Beispiel.

Leider unterstützt requests noch nicht nativ SOCKS-Proxys (siehe dieses Issue für Details). Daher musst du requesocks verwenden, einen recht alten Fork von requests. Beachte, dass du möglicherweise nicht alle kürzlich hinzugefügten requests-Methoden verwenden kannst.

Installiere requesocks durch Ausführen von pip install requesocks.

Hier ist ein kurzes Beispiel, das deine Tor-anonymisierte IP zurückgibt:

requests_over_tor.py
#!/usr/bin/env python
#Released under CC0
import requesocks
#Neues gewrapptes requests-Objekt initialisieren
session = requesocks.session()
#Tor für sowohl HTTP als auch HTTPS verwenden
session.proxies = {'http': 'socks5://localhost:9050', 'https': 'socks5://localhost:9050'}
#Seite abrufen, die die IP-Adresse anzeigt
response = session.get('http://httpbin.org/ip')
print(response.text)

Beachte, dass requesocks derzeit nicht mit Python3 funktioniert. Als Alternative kannst du pycurl wie hier beschrieben oder SocksiPy als urllib2-Wrapper wie hier beschrieben verwenden.


Check out similar posts by category: Python