Wie man urlib2 Anfragen durch Tor in Python macht?
Ich bin Crawlen von websites mit einem crawler in Python geschrieben. Ich möchte zu integrieren Tor mit Python Sinne möchte ich zum Crawlen der Website anonym mit Tor.
Habe ich versucht, dies zu tun. Es scheint nicht zu funktionieren. Ich habe meine IP ist immer noch dieselbe wie die, die, bevor ich tor. Ich habe es über python.
import urllib2
proxy_handler = urllib2.ProxyHandler({"tcp":"http://127.0.0.1:9050"})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
InformationsquelleAutor der Frage | 2009-07-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie versuchen, eine Verbindung zu einem SOCKS-port - Tor lehnt jede nicht-SOCKEN-Verkehr. Sie können die Verbindung über einen Mittelsmann - Privoxy - Port 8118.
Beispiel:
Bitte beachten Sie auch Eigenschaften übergeben ProxyHandler, keine http-Präfix die ip:port
InformationsquelleAutor der Antwort Dmitri Farkov
Dann:
Einfach mit
urllib2.ProxyHandler
wie in https://stackoverflow.com/a/2015649/895245 schlägt fehl mit:Erwähnt: Wie kann ich einen SOCKS 4/5-proxy mit urllib2?
Getestet auf Ubuntu 15.10, Tor 0.2.6.10, 2.7.10 Python.
InformationsquelleAutor der Antwort Ciro Santilli 新疆改造中心 六四事件 法轮功
Per privoxy als http-proxy vor dem tor funktioniert für mich - hier ist ein crawler-Vorlage:
InformationsquelleAutor der Antwort
Hier ist ein code für das herunterladen von Dateien mit tor-proxy in python: (update-url)
InformationsquelleAutor der Antwort carloona
Folgende code ist 100% arbeiten auf Python 3.4
(Sie benötigen, um TOR Browser öffnen wil, mit diesem code)
Dieses Skript eine Verbindung zum TOR über socks5 bekommen die IP vom checkip.dyn.com ändern Sie die Identität, und senden Sie die Anforderung zum abrufen einer neuen IP (10 Durchläufe)
Zu installieren, müssen Sie die entsprechenden Bibliotheken, damit es funktioniert. (Genießen und nicht missbrauchen)
InformationsquelleAutor der Antwort Amine
Folgende Lösung funktioniert bei mir in Python 3. Adaptiert von CiroSantilli ist Antwort:
Mit
urllib
(name des urllib2 in Python 3):Mit
requests
:Mit
Selenium
+ PhantomJS:Hinweis: Wenn Sie planen, Tor zu nutzen, oft, erwägen, eine Spende zu unterstützen, Ihre großartige Arbeit!
InformationsquelleAutor der Antwort J0ANMM
Update -
Die neuesten (ab v2.10.0)
Anfragen
Bibliothek unterstützt socks-Proxys mit einer zusätzlichen Anforderung vonAnfragen[Socken]
.Installation -
Grundsätzliche Verwendung -
Alte Antwort -
Obwohl dies ist eine alte post, beantworten, weil niemand scheint zu erwähnt haben die
requesocks
Bibliothek.Es ist im Grunde eine Portierung des
Anfragen
Bibliothek. Bitte beachten Sie, dass die Bibliothek eine alte Gabel (Stand: 2013-03-25) und möglicherweise nicht die gleichen Funktionalitäten wie die neuesten Anforderungen der Bibliothek.Installation -
Grundsätzliche Verwendung -
InformationsquelleAutor der Antwort shad0w_wa1k3r
Vielleicht Sie haben einige Probleme mit der Netzwerkkonnektivität? Das Skript hat bei mir (ich ersetzte eine andere URL - ich habe
http://stackoverflow.com/
- und bekomme ich die Seite wie erwartet:(etc.)
InformationsquelleAutor der Antwort Vinay Sajip
Tor ist ein socks-proxy. Verbinden Sie es direkt mit das Beispiel, das Sie anführen schlägt mit "urlopen error-Tunnel-Verbindung ist fehlgeschlagen: 501 Tor ist nicht HTTP-Proxy". Wie andere erwähnt haben, die Sie bekommen können, um dieses mit Privoxy.
Alternativ können Sie auch PycURL oder SocksiPy. Beispiele für die Verwendung sowohl mit tor sehen...
https://stem.torproject.org/tutorials/to_russia_with_love.html
InformationsquelleAutor der Antwort Damian
können Sie torify
führen Sie Ihr Programm mit
InformationsquelleAutor der Antwort mohamed emad
Dachte, ich würde teilen eine Lösung, die für mich gearbeitet (Python ist3, windows10):
Schritt 1: Aktivieren Sie Ihr Tor ControlPort an
9151
.Tor-service läuft auf Standard-port
9150
und ControlPort auf9151
. Sie sollten in der Lage sein, um zu sehen, lokale Adresse127.0.0.1:9150
und127.0.0.1:9151
beim ausführennetstat -an
.Schritt 2: Python-Skript wie folgt.
Diesem Skript oben erneuert IP-Adresse für jede URL, die Sie wollen, zu kratzen. Nur stellen Sie sicher, zu schlafen, lange genug, für IP zu ändern. Zuletzt getestet gestern. Hoffe, das hilft!
InformationsquelleAutor der Antwort KittyBot
Weiter oben im Kommentar über die Verwendung von torify und der Tor-browser (und nicht braucht, Privoxy):
(install Tor-browser und starten Sie es)
Verwendung der Befehlszeile:
Gebaut oder in einem Skript:
Hinweis, den Tor-browser nutzt port 9150, nicht 9050
InformationsquelleAutor der Antwort Steve Lockwood