当前位置: 首页 > article >正文

undetected-chromedriver 使用教程,指定浏览器驱动和浏览器版本

前言

浏览器自动化测试,测试过一些网站检测


目录

  • 前言
    • 1. 安装 `undetected-chromedriver`
    • 2. 基本使用
      • 示例代码:
      • 代码解析:
    • 3. 反自动化检测绕过
      • 自定义浏览器设置
        • 示例:使用自定义 `User-Agent`
        • 示例:启用无头模式(Headless)
        • 示例:禁用 GPU 加速
    • 4. 使用代理
        • 示例:配置代理
    • 5. 常见问题及解决方案
      • 1. 无法绕过反自动化检测
      • 2. 驱动无法启动
    • 6. 总结

undetected-chromedriver 是一个用于绕过浏览器自动化检测的 Python 库。它可以帮助开发者通过 Selenium 启动 Chrome 浏览器时避免被检测为自动化脚本,特别是在需要避免反自动化机制的场景下非常有用。

介绍如何安装、配置并使用 undetected-chromedriver,以及如何避免常见的自动化检测。

1. 安装 undetected-chromedriver

首先,确保你的环境中已安装 undetected-chromedriver。使用以下命令安装:

pip install undetected-chromedriver

undetected-chromedriver 会自动处理一些反自动化的机制,允许你通过 Selenium 启动浏览器并避免被网站检测为自动化浏览器。

2. 基本使用

以下是一个简单的例子,展示了如何使用 undetected-chromedriver 启动浏览器并访问一个网页。

示例代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import undetected_chromedriver as uc
import time

chrome_options = uc.ChromeOptions()

driver = uc.Chrome(
    options=chrome_options,
    driver_executable_path="D:\chromedriver_win\chromedriver.exe",
    browser_executable_path="C:\Program Files\Google\Chrome\Application\chrome.exe",
)
driver.get("https://nowsecure.nl")
#打印标题
print(driver.title)
#保存网页截图
driver.save_screenshot("nowsecure.png")
time.sleep(10)
driver.quit()

代码解析:

  1. uc.ChromeOptions():创建浏览器选项对象,可以在其中设置各种浏览器参数(例如无头模式、代理等)。
  2. uc.Chrome(options=options):启动 Chrome 浏览器,并传入配置选项。
  3. driver_executable_path 指定浏览器驱动路径,如果默认运行没问题,可以不指定
  4. browser_executable_path 指定浏览器路径,如果默认运行没问题,可以不指定
  5. driver.get():打开指定的网页。
  6. time.sleep(5):等待页面加载完成,实际使用中你可以使用显式等待(WebDriverWait)来代替 sleep
  7. driver.title:获取页面的标题。
  8. driver.quit():关闭浏览器,释放资源。

3. 反自动化检测绕过

undetected-chromedriver 的核心功能是绕过反自动化检测。它会自动处理一些常见的自动化检测机制,例如修改 navigator.webdriver 属性和 User-Agent,从而避免被检测为自动化脚本。

自定义浏览器设置

你可以进一步自定义浏览器的行为,例如修改 User-Agent、启用无头模式等。

示例:使用自定义 User-Agent
options.add_argument('--user-agent=YourCustomUserAgent')
示例:启用无头模式(Headless)

无头模式可以让浏览器在没有界面的情况下运行,适用于不需要查看浏览器界面的自动化任务。

options.add_argument('--headless')
示例:禁用 GPU 加速
options.add_argument('--disable-gpu')

4. 使用代理

在一些情况下,网站会根据 IP 地址或地理位置进行反自动化检测,使用代理服务器可以帮助隐藏真实 IP。

示例:配置代理
options.add_argument('--proxy-server=http://your.proxy.server:port')

your.proxy.server:port 替换为你自己的代理地址。

5. 常见问题及解决方案

1. 无法绕过反自动化检测

有些网站可能会使用更高级的检测技术,undetected-chromedriver 可能无法绕过所有的检测。在这种情况下,你可以尝试以下方法:

  • 更换代理。
  • 随机化 User-Agent 和其他浏览器特征。
  • 使用显式等待代替 sleep,模拟更自然的浏览器行为。

2. 驱动无法启动

如果你遇到启动 Chrome 驱动失败的情况,可能是因为版本不匹配。确保你的 Chrome 浏览器版本和 chromedriver 版本匹配。

如果你使用的是 undetected-chromedriver,它通常会自动处理驱动版本问题,但仍然建议保持 Chromechromedriver 的版本一致。

可以在网上搜索对应的浏览器版本驱动,先查看浏览器版本,在浏览器地址栏输入

chrome://version/

6. 总结

undetected-chromedriver 是一个非常实用的库,它通过绕过自动化检测机制,帮助开发者使用 Selenium 实现更稳定的网页自动化。你可以通过修改浏览器选项、使用代理或自定义 User-Agent 来进一步优化绕过策略。

希望本教程能够帮助顺利使用 undetected-chromedriver 进行浏览器自动化。如果遇到问题,可以查看官方文档或在评论区留言,我们一起讨论解决方法!


http://www.kler.cn/a/539967.html

相关文章:

  • 代码随想录二刷|回溯4
  • C++并发编程指南 09(共享数据)
  • PostgreSQL 18新特性之DML语句RETURNING增强
  • 【漫话机器学习系列】087.常见的神经网络最优化算法(Common Optimizers Of Neural Nets)
  • 移植BOA服务器到GEC2440开发板
  • Spring Boot接入Deep Seek的API
  • 运行npm install卡住不动的
  • 22.2、Apache安全分析与增强
  • 【数据结构】_栈与队列经典算法OJ:栈与队列的互相实现
  • 深度学习 语音合成
  • Java并发编程笔记
  • C++使用Json保存配置参数
  • 【计算机网络基础】ACL
  • 【Redis keys命令有什么问题?】
  • Android内存性能优化量化指标
  • 深度卷积神经网络实战海洋动物图像识别
  • 网络基础知识与配置
  • 《ARM64体系结构编程与实践》学习笔记(三)
  • 7 使用 Pydantic 验证 FastAPI 的请求数据
  • 网站快速收录策略:提升爬虫抓取效率
  • 2025Stable Diffusion WebUI详细使用指南
  • Spring Boot Actuator EndPoints(官网文档解读)
  • Android Camera API 介绍
  • 【LLM】DeepSeek R1训练成本降低分析篇
  • c++ haru生成pdf输出饼图
  • 安卓基础(Okhttp3)