使用TOR来获取代理的Python硒适用于Firefox,但不适用于Chrome

时间:2018-08-06 10:55:36

标签: python selenium proxy tor

在过去的几天里,我一直在学习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打开Web浏览器。现在,我使用此代码在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设置中,只是尝试在其中设置

2 个答案:

答案 0 :(得分:6)

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

PROXY = "socks5://127.0.0.1:9150"

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

答案 1 :(得分:0)

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