首页 > 解决方案 > 使用 TOR 获取代理的 Python selenium 适用于 firefox,但不适用于 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 设置中只是试图在里面设置

标签: pythonseleniumproxytor

解决方案


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

PROXY = "socks5://127.0.0.1:9150"

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


推荐阅读