登录 免费注册

python selenium设置代理ip教程

发布时间:2023年01月18日 · 全文约 1600 字 · 预计阅读 4 分钟

本页目录

    什么是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)