Selenium Chrome WebDriver配置代理访问的两种方式

发布时间: 2025-07-12

Selenium Chrome Webdriver配置代理访问的两种方式


前言

开发爬虫程序,如果不做代理设置,本机的外网IP很容易被网站封掉,导致不能持续进行数据抓取。

而Selenium作为动态网页抓取的利器,我们有必要了解一下,如果对它进行代理设置,并正常访问网页。

方法一 add_argument()方式

示例代码如下:

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

myProxy = "103.240.35.229:54743"

options = Options() options.binary_location = '/usr/bin/google-chrome' options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument('--no-sandbox') options.add_argument('--proxy-server=%s' % myProxy)

driver = webdriver.Chrome(executable_path='./chromedriver', chrome_options=options) driver.get("https://www.xtuz.net") driver.implicitly_wait(5) driver.save_screenshot('xtuz.png') driver.quit() ```

该方法类似在命令行的方式,直接通过--proxy-server这个参数传给chrome, 后者则以这个地址来进行访问。从代码开发的角度来说,非常简单方便。

方法二 set_capability()方式

示例代码如下:

```python from selenium import webdriver from selenium.webdriver.common.proxy import Proxy, ProxyType from selenium.webdriver.chrome.options import Options

myProxy = "103.240.35.229:54743"

p = { 'proxyType': 'MANUAL', 'httpProxy': myProxy, 'ftpProxy': myProxy, 'sslProxy': myProxy, 'noProxy':''}

options = Options() options.binary_location = '/usr/bin/google-chrome' options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument('--no-sandbox')

options.set_capability("proxy", p) driver = webdriver.Chrome(executable_path='./chromedriver', chrome_options=options) driver.get('https://www.xtuz.net') driver.implicitly_wait(5) driver.save_screenshot('www.xtuz.net.png') driver.quit() ```

这种方式主要通过set_capability()对代理信息进行配置,相比方法一来说,可以选择配置的类型更灵活和丰富。

验证代理生效

我们查看兔子先生的后台访问日志,可以看到有来自该代理服务器的访问请求,如图

后台数据记录

从User-Agent标识很容易看到就是我们的爬虫程序进行的访问。

参考资料