So verbinden Sie sich mit Python mit dem Tor-Browser

Lesezeit: 5 Minuten

Benutzer-Avatar
Codehacker

Ich versuche, eine Verbindung zu einem Tor-Browser herzustellen, erhalte jedoch eine Fehlermeldung mit der Meldung „proxyConnectFailure“. Ich habe mehrere Versuche unternommen, in die Grundlagen des Tor-Browsers einzusteigen, um eine Verbindung herzustellen, aber alles umsonst, wenn irgendetwas helfen könnte, Leben zu retten, könnte viel Zeit gerettet werden :

from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary


binary = FirefoxBinary(r"C:\Users\Admin\Desktop\Tor Browser\Browser\firefox.exe")
profile = FirefoxProfile(r"C:\Users\Admin\Desktop\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default")

# Configured profile settings.

proxyIP = "127.0.0.1"
proxyPort = 9150

proxy_settings = {"network.proxy.type":1,
    "network.proxy.socks": proxyIP,
    "network.proxy.socks_port": proxyPort,
    "network.proxy.socks_remote_dns": True,
}
driver = webdriver.Firefox(firefox_binary=binary,proxy=proxy_settings)

def interactWithSite(driver):

    driver.get("https://www.google.com")    
    driver.save_screenshot("screenshot.png")

interactWithSite(driver)

  • Mögliches Duplikat von Running Selenium Webdriver with a proxy in Python

    – Hölle0

    27. Dezember 2018 um 9:27 Uhr

Benutzer-Avatar
unentdecktes Selen

Um eine Verbindung herzustellen Tor Browser durch ein FirefoxProfil Sie können die folgende Lösung verwenden:

  • Codeblock:

    from selenium import webdriver
    from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
    import os
    
    torexe = os.popen(r'C:\Users\AtechM_03\Desktop\Tor Browser\Browser\TorBrowser\Tor\tor.exe')
    profile = FirefoxProfile(r'C:\Users\AtechM_03\Desktop\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default')
    profile.set_preference('network.proxy.type', 1)
    profile.set_preference('network.proxy.socks', '127.0.0.1')
    profile.set_preference('network.proxy.socks_port', 9050)
    profile.set_preference("network.proxy.socks_remote_dns", False)
    profile.update_preferences()
    driver = webdriver.Firefox(firefox_profile= profile, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    driver.get("http://check.torproject.org")
    
  • Browser-Snapshot:

Tor_Python


Eine relevante Diskussion finden Sie unter How to use Tor with Chrome browser through Selenium

  • immer noch der gleiche Fehler, tatsächlich verbinde ich mich mit dem Tor-Browser, kann aber die Website nicht besuchen

    – Codehacker

    27. Dezember 2018 um 10:04 Uhr


  • Können Sie zuerst überprüfen, ob Sie eine Verbindung zur URL herstellen können? http://check.torproject.org und sehe die Nachricht Dieser Browser ist für die Verwendung von Tor konfiguriert. Erste?

    – unentdecktes Selen

    27. Dezember 2018 um 10:12 Uhr

  • Sie sind also im Grunde nicht über verbunden Tor. Haben Sie versucht, den Codeblock aus der Antwort zu verwenden, und es so versucht, wie es ist?

    – unentdecktes Selen

    27. Dezember 2018 um 10:17 Uhr

  • Ja, das habe ich getan, im Grunde öffnet es das Tor-Fenster, wenn ich es manuell betrete check.torproject.org es öffnet sich aber nicht mit Code

    – Codehacker

    27. Dezember 2018 um 10:18 Uhr

  • Als ich endlich verbunden war, musste ich den sock_port auf 9150 ändern und das hat funktioniert

    – Codehacker

    27. Dezember 2018 um 10:38 Uhr

Ich möchte die Antwort von @DebanjanB erweitern, indem ich das Linux-Gegenstück hinzufüge:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
import os

torexe = os.popen('some/path/tor-browser_en-US/Browser/start-tor-browser') 
# in my case, I installed it under a folder tor-browser_en-US after
# downloading and extracting it from 
# https://www.torproject.org/download/ for linux

profile = FirefoxProfile(
    'some/path/tor-browser_en-US/Browser/TorBrowser/Data/Browser/profile.default')
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', '127.0.0.1')
profile.set_preference('network.proxy.socks_port', 9050)
profile.set_preference("network.proxy.socks_remote_dns", False)
profile.update_preferences()

firefox_options = webdriver.FirefoxOptions()
firefox_options.binary_location = '/usr/bin/firefox' 
# /usr/bin/firefox is default location of firefox - for me anyway

driver = webdriver.Firefox(
    firefox_profile=profile, options=firefox_options, 
    executable_path="wherever/you/installed/geckodriver") 
# I keep my geckodriver(s) in a special folder sorted by versions.
# Geckodriver downloadable here: 
# https://github.com/mozilla/geckodriver/releases/
driver.get("http://check.torproject.org")

  • Ab 2022 funktioniert dies nicht mehr

    – Leben nach dem Gast

    12. März um 9:06 Uhr

Die verifizierte Antwort funktioniert nicht, wenn Punkt-Zwiebel-Sites geöffnet werden (ich glaube, das hat etwas mit dem Tor-Netzwerk zu tun, das keinen Zugriff auf normales Firefox zulässt).

Beim neuesten Tor-Browser (aus dem Tor-Browser-Paket) verursacht das Starten mit Selen einen Fehler, aufgrund dessen der Browser den Tor-Proxy selbst nicht starten kann, was zu Proxy- und Zeitüberschreitungsfehlern führt (egal, ob der Tor-Proxy von Python oder manuell gestartet wird oder gar nicht gestartet). Dies könnte auch darauf zurückzuführen sein, dass Port 9050 oder 9150 vom Tor-Proxy verwendet wird und für die Tor-Instanz des Browsers nicht verfügbar ist. Dies erklärt jedoch nicht den Fehler, der verursacht wird, wenn keine Instanz des Tor-Proxys ausgeführt wird.

Die Lösung, die ich gefunden habe, besteht darin, den Tor-Proxy wie gewohnt manuell oder mithilfe von zu starten os.popen("tor.exe") und konfigurieren Sie den Tor-Browser so, dass er den Tor-Proxy nicht startet. hier ist der Code:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

os.popen(r'e:\\bla\\bla\\bla\\tor\\Tor\\tor.exe')

binary=FirefoxBinary(r'e:\\bla\\bla\\bla\\Tor Browser\\Browser\\firefox.exe')
fp=FirefoxProfile(r'e:\\foo\\bar\\bla\\Tor Browser\\Browser\\TorBrowser\\Data\\Browser\\profile.default')

fp.set_preference('extensions.torlauncher.start_tor',False)#note this
fp.set_preference('network.proxy.type',1)
fp.set_preference('network.proxy.socks', '127.0.0.1')
fp.set_preference('network.proxy.socks_port', 9050)
fp.set_preference("network.proxy.socks_remote_dns", True)
fp.update_preferences()

driver = webdriver.Firefox(firefox_profile=fp,firefox_binary=binary)
driver.get("http://check.torproject.org")
driver.get('https://www.bbcnewsv2vjtpsuy.onion/')

*Hinweis fp.set_preference('extensions.torlauncher.start_tor',False) on Zeile 10 wird verwendet, um Tor so zu konfigurieren, dass es keine eigene Tor-Instanz startet, so dass es die oben gestartete Proxy-Konfiguration und Tor-Instanz verwendet.

lo and behold as the tbb starts working like normal firefox bot browser

1017640cookie-checkSo verbinden Sie sich mit Python mit dem Tor-Browser

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy