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

如何使用Python+Selenium实现每次运行脚本时切换不同代理

Selenium 每次循环切换代理实现方案

核心需求实现说明

你提到的两个需求都可以实现:

  1. 每次循环使用不同代理IP访问目标网站
  2. 可以保留可见的浏览器窗口,和你当前运行效果完全一致

你原有代码的问题是只初始化了一次Chrome driver,代理参数是在driver初始化阶段配置的,所以循环内无法切换代理,调整思路为每次循环都重新初始化带不同代理配置的driver即可。

调整后可运行代码

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

# 你的chromedriver路径
PATH = "C:\Program Files (x86)\chromedriver.exe"
# 代理池,替换为你自己的可用代理,格式为 IP:端口
proxy_list = ["111.22.33.44:8080", "55.66.77.88:3128", "99.88.77.66:8000"]
# 访问次数,不要超过代理池长度即可
access_count = 2
target_website = "你要访问的目标网址"

for i in range(access_count):
    # 每次循环初始化新的配置
    chrome_options = Options()
    # 配置当前循环使用的代理,不要加--headless参数就会显示可见窗口
    chrome_options.add_argument(f'--proxy-server={proxy_list[i]}')
    # 初始化driver
    driver = webdriver.Chrome(executable_path=PATH, options=chrome_options)
    # 访问目标网站
    driver.get(target_website)
    # 可自定义停留时间,模拟真实用户浏览
    time.sleep(3)
    # 访问结束关闭当前driver,避免残留大量窗口,不需要自动关闭可以删除这行
    driver.quit()

可选优化方案

如果你的需求只是模拟访问流量,不需要模拟点击、输入、滚动等真实用户操作,也不需要查看浏览器窗口,可以用requests库配合代理池实现,运行速度更快,系统资源占用更低,适合大数量级的访问模拟。

注意事项

  • 请使用合规且可用的代理,失效代理会导致访问失败
  • 如果需要更高的模拟真实度,可以给每次启动的driver配置不同的User-Agent,降低被网站反爬策略识别的概率
  • 若需要保留窗口不自动关闭,可以去掉driver.quit(),但要注意手动清理残留的浏览器进程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:36:02