如何在 Selenium 中为网络抓取设置代理

方法, 蟒蛇, 代理, 11-27-20245 分钟阅读

使用 Selenium 进行网络扫描或自动化时,必须集成代理。代理可以让你绕过禁令、速率限制和地理限制,使你的任务无缝而高效。但是,在 Selenium 中配置代理可能是一个挑战,尤其是在处理身份验证或需要监控 HTTP 请求时。这就是Selenium Wire 的用武之地。

硒线

Selenium Wire是 Selenium 的扩展版本,它增加了额外的高级功能,允许你轻松验证代理、拦截 HTTP 请求和响应以及调试网络流量。

在本指南中,我们将向您介绍如何在 Selenium 中设置代理,使用 硒线webdriver 管理器.通常情况下,你需要从浏览器中下载网络驱动程序的二进制文件,并保持定期更新。网络驱动程序 webdriver 管理器 通过为您处理这些任务,简化了这一过程。

在本博客结束时,你将拥有一个为ProxyScrape 代理定制的、配置完整的 Selenium 设置,随时准备应对任何挑战。让我们开始吧

简要说明

要访问完整的脚本而无需阅读整个教程,请单击此链接复制完整代码。

先决条件 

在深入了解如何在 Selenium 中设置代理之前,请确保已安装并准备好以下工具和库:

  • 已安装 Python
    • 确保系统已安装Python 3.7 或更高版本。
    • 您可以从Python 官方网站下载最新版本。
  • 所需的 Python 软件包(Pip 安装)
    • 硒线
    • webdriver 管理器

运行以下命令安装所有依赖项:

pipinstallselenium-wire webdriver-manager

注意:您可能会遇到错误"ModuleNotFoundError:没有名为 blinker._saferef 的模块".可通过将 blinker 库降级至1.7.0 版本来解决此问题

  • 首先 卸载 当前版本的 闪烁器
pip uninstall blinker
  • 然后安装上述特定版本:
pipinstallblinker==1.7.0

有了这些先决条件,让我们把脚本配置分成三个简单的步骤:

在 Selenium 中设置代理:脚本

既然我们已经介绍了先决条件,下面就开始实际脚本的编写。本分步指南将帮助您集成 ProxyScrape 住宅代理 使用 硒线webdriver 管理器.

1.导入所需程序库

我们首先要导入必要的库:

导入re
fromseleniumwireimportwebdriver
fromselenium.webdriver.chrome.serviceimportService
fromselenium.webdriver.chrome.options import Options
fromwebdriver_manager.chromeimportChromeDriverManager

2.代理配置

定义ProxyScrape 代理详细信息:

proxy_address="rp.proxyscrape.com:6060"
proxy_username="your_proxy_username" 代理服务器用户名
proxy_password="your_proxy_password" 代理服务器密码
  • 替换占位符 (代理用户名、代理密码)。 ProxyScrape 。
  • rp.proxyscrape.com:6060是ProxyScrape 住宅代理端点。

3.硒线选项

在 Selenium Wire 中设置代理:

sw_options = {
   'proxy': {
       'http': f'http://{proxy_username}:{proxy_password}@{proxy_address}',
       'https': f'https://{proxy_username}:{proxy_password}@{proxy_address}',
   }
}

4.配置 Chrome 浏览器选项

优化 Chrome 浏览器设置,提高性能:

chrome_options =Options()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

5.初始化 WebDriver

设置 硒线webdriver 管理器:

服务 = 服务(ChromeDriverManager().install()
driver = webdriver.Chrome(service=service,seleniumwire_options=sw_options,options=chrome_options)
  • ChromeDriverManager:自动下载并为浏览器版本设置正确的 ChromeDriver 二进制程序。
  • seleniumwire_options:配置 Selenium Wire 的代理。
  • 选项:应用特定于 Chrome 浏览器的设置。

6.访问目标网站

导航至ProxyScrape Judge 端点测试代理:

driver.get('https://ssl-judge2.api.proxyscrape.com/')
  • ProxyScrape 法官:该端点会返回所使用代理的相关信息,如您的 IP 地址和标头。

7.解析响应

使用 regex 提取并显示代理 IP 地址:

# 示例:从响应中提取 IP
response = driver.page_source

# 使用简单的 regex 来解析来源 IP
print("Response:", response)
print("Your IP is:", re.search("HTTP_X_FORWARDED_FOR = (\d+\.)+\d+", response).group().split("=")[-1])
# 退出浏览器实例
driver.quit()
  • Regex 解释:
    • 与页眉匹配 HTTP_X_FORWARDED_FOR 并提取代理 IP
    • 分割结果以隔离 IP 地址

结论

总之,使用ProxyScrape 住宅代理服务器Selenium Wire是一个强大的解决方案,适合需要高级网络搜索和自动化功能并提高隐私和安全性的人。

按照本指南,您可以建立一个无缝环境,不仅能绕过限制,还能将配置工作减至最少。该方法利用Selenium WireWebDriver Manager等强大工具,通过代理有效管理和路由流量,确保刮擦任务高效可靠。

如果您需要网络搜刮方面的帮助,或对我们的产品有任何疑问,请随时通过即时聊天与我们联系。您也可以加入我们的Discord 社区,获得支持和更新。