You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium脚本代理运行问题求助

嘿,我来帮你搞定Selenium爬虫不走代理的问题!你看到的提示说明请求确实是从你的真实IP发出的,接下来我会一步步教你怎么配置代理,让爬虫通过代理通道发送请求。

一、Chrome浏览器配置代理

Chrome的配置比较直接,通过ChromeOptions添加代理参数就行:

  1. 先准备好你的代理地址,格式得是http://ip:端口、https://ip:端口或者socks5://ip:端口(根据代理类型选)
  2. 创建ChromeOptions对象,添加--proxy-server参数指定代理
  3. 把配置好的Options传入ChromeDriver

给你个现成的代码示例,记得替换成自己的代理信息:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 替换成你的代理IP和端口
proxy_address = "http://123.45.67.89:8080"

# 配置Chrome选项
chrome_options = Options()
chrome_options.add_argument(f'--proxy-server={proxy_address}')

# 启动浏览器
driver = webdriver.Chrome(options=chrome_options)

# 访问代理检测页面验证
driver.get("https://your-proxy-check-url.com")
# 打印页面内容看是否显示代理IP
print(driver.page_source)

driver.quit()
二、Firefox浏览器配置代理

Firefox需要用到Proxy对象来设置代理,步骤如下:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.proxy import Proxy, ProxyType

# 配置代理信息
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = "123.45.67.89:8080"  # HTTP代理
proxy.ssl_proxy = "123.45.67.89:8080"  # HTTPS代理,和HTTP可以一致也可以不同

# 配置Firefox选项
firefox_options = Options()
firefox_options.proxy = proxy

# 启动浏览器
driver = webdriver.Firefox(options=firefox_options)

driver.get("https://your-proxy-check-url.com")
print(driver.page_source)

driver.quit()
三、带用户名密码的代理怎么处理?

如果你的代理需要账号密码认证,Chrome可以通过注入JS脚本的方式自动完成认证:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

proxy = "http://123.45.67.89:8080"
proxy_user = "your_username"
proxy_pwd = "your_password"

chrome_options = Options()
chrome_options.add_argument(f'--proxy-server={proxy}')

driver = webdriver.Chrome(options=chrome_options)

# 注入认证脚本,自动完成代理登录
auth_js = f"""
(function() {{
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open('GET', 'https://your-proxy-check-url.com', false, '{proxy_user}', '{proxy_pwd}');
    xmlhttp.send();
}})();
"""
driver.execute_script(auth_js)

# 现在访问页面就会走代理了
driver.get("https://your-proxy-check-url.com")
print(driver.page_source)

driver.quit()
四、几个容易踩的坑
  • 代理格式要正确:必须带上协议头(http/https/socks5),不能只写ip:端口,否则配置不会生效
  • 先验证代理可用性:先手动在浏览器设置这个代理,访问检测页面确认能正常使用,再写到代码里
  • 网络环境限制:如果是公司内网,可能会屏蔽外部代理,导致连接失败,这种情况得找网管确认
  • 无头模式不影响:如果用无头模式(比如chrome_options.add_argument('--headless=new')),代理配置完全一样,不用额外修改

按照上面的方法配置后,再访问你的检测页面,应该就能看到请求来自代理IP的提示啦!

内容的提问来源于stack exchange,提问作者SIM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:58:00