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

前言

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


目录

  • 前言
    • [1. 安装 `undetected-chromedriver`](#1. 安装 undetected-chromedriver)
    • [2. 基本使用](#2. 基本使用)
    • [3. 反自动化检测绕过](#3. 反自动化检测绕过)
    • [4. 使用代理](#4. 使用代理)
    • [5. 常见问题及解决方案](#5. 常见问题及解决方案)
      • [1. 无法绕过反自动化检测](#1. 无法绕过反自动化检测)
      • [2. 驱动无法启动](#2. 驱动无法启动)
    • [6. 总结](#6. 总结)

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

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

1. 安装 undetected-chromedriver

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

bash 复制代码
pip install undetected-chromedriver

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

2. 基本使用

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

示例代码:

python 复制代码
#!/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
python 复制代码
options.add_argument('--user-agent=YourCustomUserAgent')
示例:启用无头模式(Headless)

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

python 复制代码
options.add_argument('--headless')
示例:禁用 GPU 加速
python 复制代码
options.add_argument('--disable-gpu')

4. 使用代理

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

示例:配置代理
python 复制代码
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 进行浏览器自动化。如果遇到问题,可以查看官方文档或在评论区留言,我们一起讨论解决方法!

相关推荐
福运常在24 分钟前
股票数据API(19)次新股池数据
java·python·maven
多看书少吃饭28 分钟前
Vue3 + Java + Python 打造企业级大模型知识库(含 SSE 流式对话完整源码)
java·python·状态模式
Z.风止34 分钟前
Large Model-learning(2)
开发语言·笔记·python·leetcode
蓝天守卫者联盟134 分钟前
玩具喷涂废气治理厂家:行业现状、技术路径与选型指南
大数据·运维·人工智能·python
m0_7381207235 分钟前
我的创作纪念日0328
java·网络·windows·python·web安全·php
red1giant_star42 分钟前
浅析文件类漏洞原理与分类——含payload合集与检测与防护思路
python·安全
tryCbest1 小时前
Python之Flask开发框架(第一篇) — 从安装到第一个应用
开发语言·python·flask
zhangzeyuaaa1 小时前
Python getter/setter 正确用法详解
开发语言·python
源码之家1 小时前
计算机毕业设计:Python智慧交通大数据分析平台 Flask框架 requests爬虫 出行速度预测 拥堵预测(建议收藏)✅
大数据·hadoop·爬虫·python·数据分析·flask·课程设计
Shaoxi Zhang1 小时前
pm2运行项目实践记录(通过ecosystem.config.js配置并自动运行)
javascript·python·pycharm