Python | Firefox IP代理

Firefox IP代理

以下代码仅针对 Firefox

from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile

profile = FirefoxProfile()
# 激活手动代理配置(对应着在 profile(配置文件)中设置首选项)
profile.set_preference("network.proxy.type", 1)
# ip及其端口号配置为 http 协议代理
profile.set_preference("network.proxy.http", "117.36.103.170")
profile.set_preference("network.proxy.http_port", 8118)

# 所有协议共用一种 ip 及端口,如果单独配置,不必设置该项,因为其默认为 False
profile.set_preference("network.proxy.share_proxy_settings", True)

# 默认本地地址(localhost)不使用代理,如果有些域名在访问时不想使用代理可以使用类似下面的参数设置
# profile.set_preference("network.proxy.no_proxies_on", "localhost")

# 以代理方式启动 firefox
firefox  = webdriver.Firefox(profile)
firefox.get('http://httpbin.org/get')

渲染出来的页面如下(Firefox 自动格式化了 JSON 数据),可以看到 `origin` 字段的 IP 值正是配置的代理 IP

 

 

 http://httpbin.org/get

说明

    • `profile.set_preference("network.proxy.type", 1)` 相当于激活手动代理配置,如下图的所示

 

 

 

  • 端口号必须是 int 类型,否则端口号无法配置
  • 上面的配置的 IP 及端口号仅适用于 HTTPS,使用 HTTP 是不合适的。为了防止有时协议配置错误的问题,建议使用 `profile.set_preference("network.proxy.share_proxy_settings", True)` 为所有协议(包括 HTTPS(SSL)、FTP、SOCKS 等)使用相同 IP 及端口号,相当于激活了“为所有协议使用相同代理服务器”

 

 

如果只配置一个协议,比如这里的 HTTPS,可以利用 `set_preference()` 方法设置 HTTPS IP 代理可以使用 `network.proxy.ssl` 作为 key,`network.proxy.ssl_port` 是 ssl 的端口号(尝试使用官方文档中的 `network.proxy.sslProxy`、`network.proxy.ssl_proxy` 发现无法正常配置 ssl 的 IP,我的 Firefox 版本是 60.0 (64 位))

    • `profile.set_preference("network.proxy.no_proxies_on", "localhost")` 是用来设置访问某些域名时不使用代理的,默认本地地址(localhost, 127.0.0.1)不使用代理

 

 

posted @ 2020-05-16 20:35  一颗蘑菇头  阅读(732)  评论(0编辑  收藏  举报