Python 使用 TOR 获取代理的 selenium 适用于 firefox,但不适用于 chrome

Python selenium using TOR to get proxies works for firefox, but doesn't work for chrome

最近几天,我一直在玩 python,从 youtube 上学习,并决定创建一些我喜欢自动化的东西。

我发现了一个小问题 - 当我在 Firefox 浏览器中使用我的 python 脚本时,我可以在后台打开 Tor 浏览器并使用此代码:

profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.socks", '127.0.0.1')
profile.set_preference("network.proxy.socks_port", 9150)
profile.set_preference("network.proxy.socks_remote_dns", False)
profile.update_preferences()
browser = webdriver.Firefox(firefox_profile=profile)

一切正常,每次都使用新的 ip 打开网络浏览器。现在我用 Chrome 尝试了同样的方法,使用这个代码

PROXY = "127.0.0.1:9150" # IP:PORT or HOST:PORT
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % PROXY)
chrome = webdriver.Chrome(chrome_options=chrome_options)

我用常规代理(不是来自 tor)测试了这段代码,它们确实有效。

当我这样做时 chrome 会发生以下情况:http://prntscr.com/kf8vzt

我在想,为什么它适用于 Firefox,而不适用于 chrome,查了一下可能是因为 Tor 是基于 firefox 编写的? (我可能错了,如果我错了,请更正)。

是否也可以与 Chrome 一起使用?

在chrome设置里面刚试过设置

要将 Tor 的 SOCKS 代理服务器与 chrome 一起使用,请在方案中使用 --proxy-server 选项包含 socks 协议:

PROXY = "socks5://127.0.0.1:9150"

Chrome 默认使用 HTTP 代理,这就是启动时它无法连接到站点的原因。

致所有仍然来到这里的人。现在我的 Windows tor 守护程序上的端口已更改为 9050。也许它会在未来不断变化。只需查看守护程序的控制台,您就会知道什么是正确的 ip:port。