python selenium设置代理ip教程

发布日期:2023-01-18

什么是Selenium?

       Selenium 是一种主要用于 Web 测试和浏览器自动化的工具。

       它允许您以编程方式控制无头浏览器:打开网站、截取屏幕截图以及以其他方式与页面交互。随着 JavaScript 的日益流行,网络抓取工具发现了它在处理动态网站方面的优势。

       但是,如果没有代理服务器,您将无法进行很多网络抓取或测试,因为网站对高度自动化非常严格。这就是为什么您需要代理服务器——您和互联网之间的中间人计算机。

python selenium设置代理ip教程

如何使用 Selenium Wire 设置代理

       如果您购买了代理服务,您很可能需要先验证您的代理,然后才能开始使用它们。否则,您将无法在 Selenium 中运行它。根据项目的规模,您可以将 Selenium 与常规浏览器或无头浏览器一起使用。在此示例中,我们将向您展示如何使用无头浏览器设置和验证代理。

 

       首先,您需要安装 Selenium Wire 来扩展 Selenium 的 Python 绑定。当您需要对代理进行身份验证时,默认的 Selenium 模块会使该过程过于复杂。

步骤 1 安装Selenium Wire并导入 WebDriver。

pip install selenium-wire
from seleniumwire import webdriver

注意:您可以参考GitHub 文档了解如何安装 Selenium Wire。

第 2 步 我们建议安装 WebDriver-manager,这样您就不需要在每次更新后都下载 Selenium。

pip install webdriver-manager

第 3 步 将代理添加到传递给 WebDriver的选项参数中。

options = {
    'proxy': {
        'http': http://USER:PASSWORD@ENDPOINT',
        'https': 'https://USER:PASSWORD@ENDPOINT',
    }
}

driver = webdriver.Chrome(seleniumwire_options=options)

如何设置带身份验证的 HTTP(S) 代理

第 1 步 要验证您的代理,您需要在 URL 中指定您的用户名和密码。

options = {
    'proxy': {
        'https': 'https://USER:PASSWORD@ENDPOINT',
    }
}

第 2 步 您还可以通过环境变量设置代理。如果这样做,则无需在代码中定义代理。

$ export HTTP_PROXY="http://ENDPOINT"

$ export HTTPS_PROXY="https://ENDPOINT"

$ export NO_PROXY="LOCALHOST,ENDPOINT"

如何设置带身份验证的 SOCKS5 代理

       使用 SOCKS5 代理,身份验证过程类似于 HTTP(S) 代理——您只需将方案设置为socks5。如果您的代理不需要身份验证,请排除“用户”和“密码”。

第 1 步。通过在 URL 中指定您的用户名和密码来 验证您的SOCKS5代理

options = {
    'proxy': {
        'http': 'socks5://USER:PASSWORD@ENDPOINT',
        'https': 'socks5://USER:PASSWORD@ENDPOINT',
        'no_proxy': 'localhost,ENDPOINT'
    }
}
driver = webdriver.Chrome(seleniumwire_options=options)

巨量HTTP VIP测试免费开通

覆盖全国200+城市地区线路,日活跃IP超20万个,注册每日送1000IP

立即领取

关注巨量HTTP公众号

Copyright © 版权所有 湖北巨量云科技有限公司

本模板版权局已登记·盗版必究,登记号:黔作登字-2021-F-00331209

免责声明 巨量HTTP倡导绿色合规经营,保障服务绿色、便捷、合法一直是我们的初衷,为积极响应落实《中华人民共和国网络安全法》,巨量HTTP要求所有用户必须实名认证,用户行为日志保存完整,并严格依据《巨量HTTP服务协议》对用户行为进行规范管理;用户使用巨量HTTP从事的任何行为均不代表巨量HTTP的意志和观点,与巨量HTTP的立场无关。严禁用户使用巨量HTTP从事任何违法犯罪行为, 产生的相关责任用户自负,对此巨量HTTP不承担任何法律责任。