Python Selenium设置Firefox代理不生效,如何解决?
火狐Selenium代理配置不生效解决方案
核心原因
- 仅配置了HTTP协议代理,未配置HTTPS协议代理:你访问的IP查询站点走HTTPS协议,未匹配到代理规则,直接使用本地网络访问
- 未关闭代理旁路规则,默认会绕过本地、内网地址,部分场景会影响公网代理生效
- 所用的免费公开代理本身无连通性,无法正常转发请求
修正后代码
import time import random from selenium import webdriver from selenium.webdriver.common.proxy import * from http_request_randomizer.requests.proxy.requestProxy import RequestProxy req_proxy = RequestProxy() proxies = req_proxy.get_proxy_list() change_proxy = proxies[0].get_address() print("This is your ip and port: ", change_proxy) ip = input("Ip: ") # 端口转换为整数,避免字符串类型不识别 port = int(input("Port: ")) profile = webdriver.FirefoxProfile() # 启用手动代理模式 profile.set_preference("network.proxy.type", 1) # 配置HTTP代理 profile.set_preference("network.proxy.http", ip) profile.set_preference("network.proxy.http_port", port) # 新增HTTPS代理配置,覆盖HTTPS站点请求 profile.set_preference("network.proxy.ssl", ip) profile.set_preference("network.proxy.ssl_port", port) # 可选:配置FTP代理,覆盖全协议场景 profile.set_preference("network.proxy.ftp", ip) profile.set_preference("network.proxy.ftp_port", port) # 关闭代理旁路,所有请求都走代理 profile.set_preference("network.proxy.no_proxies_on", "") profile.update_preferences() driver = webdriver.Firefox(firefox_profile=profile) driver.get("https://whatismyipaddress.com/")
注意事项
- 免费公开代理存活率不足10%,建议获取代理后先通过请求工具验证连通性,确认可用后再传入Selenium配置
- 如果使用的是SOCKS类型代理,需要替换为
network.proxy.socks相关配置项,不要使用HTTP代理参数
内容的提问来源于stack exchange,提问作者dasdasddas dsadasd
相关产品推荐
相关产品推荐

