爬虫之chromedriver和undetected-chromedriver的区别
·
1. chromedriver
- 标准Selenium驱动:是官方Selenium自动化库配套的Google Chrome浏览器控制驱动。
- 用途:用来让Selenium自动化控制Chrome浏览器(比如网页测试、数据采集等)。
- 特点:
- 容易被检测:很多现代网站(如TikTok、抖音、淘宝等)能轻易检测到你用的是Selenium自动化,常常会弹验证码、封账号、拒绝访问等。
- 最兼容/标准:所有Selenium功能都支持,但反爬网站几乎都能识别。
2. undetected-chromedriver(简称uc)
- 第三方项目,通过包装chromedriver,自动修补和伪装Selenium的各种自动化特征。
- 用途:让Selenium自动化更难被网站检测出来,绕过验证码和反爬措施,更像“真人”。
- 特点:
- 反检测能力强:自动处理
navigator.webdriver、User-Agent、指纹、插件、语言、WebGL等特征,绕过绝大多数验证码和风控。 - 代码用法几乎和原生chromedriver一样,只需用
uc.Chrome()代替webdriver.Chrome()。 - 不是万能,但对TikTok、抖音、淘宝、B站、小红书等主流大站效果明显。
- 也会定期失效(网站升级反爬时),但维护者会跟进更新。
- 反检测能力强:自动处理
3.用法的差别
(1)chromedriver
from selenium import webdriver
driver = webdriver.Chrome()
(2)undetected-chromedriver
import undetected_chromedriver as uc
driver = uc.Chrome()
其余Selenium语法一致。
4. 实际应用建议
- 普通自动化/测试:用原生chromedriver足够。
- 面对强风控/反爬网站(如TikTok、抖音、淘宝等):推荐用undetected-chromedriver。
- 如还被检测,结合ip代理、减慢访问频率、行为拟人等多手段。
总结表
| 驱动 | 反检测能力 | 推荐用途 | 兼容性 | 常见网站能否被封/弹验证码 |
|---|---|---|---|---|
| chromedriver | 差 | 普通测试/低反爬网页自动化 | 100% | 高 |
| undetected-chromedriver | 强 | 反爬/验证码多的网站 | 99% | 低(被识别概率低) |
一句话总结:
undetected-chromedriver 是为反爬虫而生的“隐身版chromedriver”,几乎完全兼容原生用法,但大幅降低被检测概率。对于TikTok等高风控网站,强烈推荐用它。因为对于tiktok进行爬虫时,如果使用chromedriver会被tiktok认为是自动化程序,从而跳出图片认证,当然chromedriver也可以通过代码来实现认证,但是使用普通的Selenium还是会被系统认定为自动化程序从无法实现移动按钮。
更多推荐
所有评论(0)