Machen Sie Anfragen mit Python über Tor
Möchte ich mehrere Anfragen BEKOMMEN durch die Verwendung von Tor auf eine Internetseite. Ich will eine andere IP-Adresse für jede Anforderung.
import socks
import socket
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9150)
socket.socket = socks.socksocket
import requests
print (requests.get('http://icanhazip.com')).content
Mit diesem machte ich eine Anfrage. Wie kann ich das ändern den IP-Adresse zu einer anderen?
InformationsquelleAutor der Frage Sachin Kelkar | 2015-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist der code, den Sie verwenden möchten (download der Stamm Paket mit
pip install stem
)Glück und hoffentlich, das funktioniert.
InformationsquelleAutor der Antwort jamescampbell
Gibt es 2 Aspekte zu deiner Frage -
Teil 1
Die erste ist einfach zu tun mit den jüngsten (ab v2.10.0)
requests
Bibliothek mit einer zusätzlichen Anforderung vonAnfragen[Socken]
für die Verwendung des socks-proxy.Installation -
Grundsätzliche Verwendung -
Teil 2
Erneuerung der Tor-IP, d.h. eine neue sichtbare exit-IP, Sie müssen in der Lage sein, um die Verbindung zu den Tor-service über die
ControlPort
und senden Sie dann eineNEWNYM
signal.Normalen Tor-installation nicht aktivieren, die
ControlPort
standardmäßig. Sie haben zu Bearbeiten Sie Ihre torrc Datei und kommentieren Sie die entsprechenden Zeilen.Bitte beachten Sie, dass die
HashedControlPassword
oben ist für das Kennwort"password"
. Wenn Sie möchten, legen Sie ein anderes Passwort, ersetzen Sie dieHashedControlPassword
in der torrc mit der Feststellung, die Ausgabe vontor --hash-password "<new_password>"
wo<new_password>
ist das Kennwort, das Sie festlegen möchten.Okay, so, jetzt haben wir Tor richtig konfiguriert, werden Sie haben zu Tor neu gestartet, wenn es bereits ausgeführt wird.
Warnung für Benutzer von Windows: siehe post hier.
Gibt es eine Ausgabe auf windows, in dem die Einstellung für den controlport in die torrc-Datei wird ignoriert, wenn tor installiert wurde, verwenden Sie den folgenden Befehl:
Um das Problem zu beheben, nachdem Sie Ihr torrc Datei, geben Sie die folgenden Befehle:
Tor sollte nun & läuft auf dem 9051
ControlPort
durch die wir die Befehle senden können. Ich benutze lieber die offiziellen Stamm-Bibliothek zur Steuerung von Tor.Installation -
Können Sie nun erneuern die Tor-IP durch den Aufruf der folgenden Funktion.
Um zu überprüfen, dass Tor hat eine neue exit-IP, nur führen Sie erneut den code aus Teil 1. Aus irgendeinem Grund mir unbekannt, müssen Sie erstellen eine neue
session
Objekt, um die neue IP.InformationsquelleAutor der Antwort shad0w_wa1k3r
Können Sie
torrequest
Bibliothek (shameless plug). Es ist verfügbar auf PyPI.InformationsquelleAutor der Antwort Erdi Aker
Anfragen unterstützt Proxys über das SOCKS-Protokoll ab version 2.10.0.
InformationsquelleAutor der Antwort Karimov Dmitriy
Diese Antwort vervollständigen das einer von Ashish Nitin Patil für windows
(fühlen Sie sich frei, zu aktualisieren, diese Antwort)
Teil 2
Den
HashedControlPassword
oben ist das Passwort. Wenn Sie möchten, legen Sie ein anderes Passwort in der Konsole navigieren Sie zu\Tor Browser\Browser\TorBrowser\Tor
und geben Sie die folgenden Befehle:tor.exe --hash-password password_XYZ | more
). Es wird Ihnen so etwas wieHashedControlPassword 16:54C092A8...
Dies ist Ihr Passwort. Jetzt können Sie es hinzufügen, um die torrc-Datei (Tor Browser\Browser\TorBrowser\Data\Tor\torrc
).Müssen Sie dann neu starten, Tor:
Um zu überprüfen, ob das funktioniert, geben Sie
netstat -an
nun sehen Sie, dass port 9051 ist offen.Beachten Sie, dass
tor --service install -...
erstellenTor Win32 Service
. Aus irgendeinem Grund scheint es Sie haben, um den Dienst zu beenden um den browser zu verwenden (runservices.msc
)EDIT: finden Sie viele Informationen, hier (Über port-Nummer & proxy, Tor, Privoxy, Auto-switch-user-agent...).
InformationsquelleAutor der Antwort JinSnow
Den
requests
imrequesocks
ist super alt ist, hat es nichtresponse.json()
und viele andere Sachen.Ich würde gerne meinen code rein. Allerdings
requests
derzeit nicht socks5 unterstützt noch (für mehr Details, Lesen Sie diesen thread https://github.com/kennethreitz/requests/pull/478)So habe ich
Privoxy
als http-proxy, verbindet sich Tor für jetzt.Installieren und konfigurieren von Privoxy auf Mac
Installieren und konfigurieren von Privoxy auf Ubuntu
Jetzt kann ich mit Tor wie ein http-proxy. Unten ist mein python-Skript.
InformationsquelleAutor der Antwort Tobias
Dieser code funktioniert einwandfrei. Durch die Verwendung von Tor, es ändert die IP-Adresse nach jeder Anfrage.
InformationsquelleAutor der Antwort N.G.Searching