如何使用Python+Selenium实现每次运行脚本时切换不同代理
Selenium 每次循环切换代理实现方案
核心需求实现说明
你提到的两个需求都可以实现:
- 每次循环使用不同代理IP访问目标网站
- 可以保留可见的浏览器窗口,和你当前运行效果完全一致
你原有代码的问题是只初始化了一次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
相关产品推荐
相关产品推荐

