【问题标题】:Python selenium using TOR to get proxies works for firefox, but doesn't work for chrome使用 TOR 获取代理的 Python selenium 适用于 firefox,但不适用于 chrome
【发布时间】:2019-01-13 07:36:38
【问题描述】:

在过去的几天里,我一直在玩 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 设置中只是尝试在里面设置

【问题讨论】:

    标签: python selenium proxy tor


    【解决方案1】:

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

    PROXY = "socks5://127.0.0.1:9150"
    

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

    【讨论】:

    • 你是最棒的。非常感谢!这解决了我的问题。无法向您添加反馈,但如果可以,我会这样做!
    • 很高兴有帮助!此时,您应该可以通过单击我的答案得分左侧的复选框来"accept" the answer。祝你编码顺利!
    • 可以':感谢您的反馈!声望低于 15 人的投票将被记录,但不会更改公开显示的帖子得分。但是当我在家时,我会用你的答案编辑我的帖子,所以如果其他人在找我,我可以帮助他们。哦,nvm找到了。是点击了错误的东西
    【解决方案2】:

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

    【讨论】:

    • 这感觉更像是一个评论而不是一个答案。供将来参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2020-07-08
    • 2018-09-08
    • 2014-11-17
    相关资源
    最近更新 更多