python - 使用 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 设置中只是试图在里面设置
解决方案
要将 Tor 的 SOCKS 代理服务器与 chrome 一起使用,请在方案中包含 socks 协议,并带有以下--proxy-server
选项:
PROXY = "socks5://127.0.0.1:9150"
Chrome 默认使用 HTTP 代理,这就是您启动时无法连接到网站的原因。
推荐阅读
- javascript - 加载图像时的触发方法(Internet Explorer)
- java - ZipException:转换重复条目 com/google/android/gms/internal/zzez.class
- ruby-on-rails - 在 Rails api 应用程序中使用“ApplicationController.new.render_to_string”(config.api_only = true)
- ios - 日期不是使用 DateFormatter 从字符串创建的
- c# - 未连接到 Azure Active Directory 的 Office 365 API
- office365 - 有没有办法让我的加载项运行并在人员级别而不是邮件项目中显示
- powershell - 即使未调用,具有 PSCustomObjects 的数组也会更改值
- node.js - Node.js 模块化功能
- laravel - 使用 Laravel Dusk 根据下拉菜单中的文本选择一个选项
- ios - 为什么这个对 NSMutableAttributedString addAttributes 的调用会崩溃?