pydoll
更新于 2026-09-03 16:09:00
pydoll:无需 WebDriver 的浏览器自动化 Python 库
pydoll 是一个用于自动化操作 Chromium 内核浏览器的 Python 库。它通过原生 DevTools 协议(CDP)直接控制浏览器,无需依赖 WebDriver,支持绕过验证码、模拟真人交互、网页截图等功能,适合做轻量、可控的浏览器自动化。
核心能力
- 原生 CDP 控制:直连 Chromium DevTools 协议,省去 WebDriver 中间层。
- 真人化交互:模拟自然输入与操作,提升抗检测能力。
- 验证码处理:提供绕过验证码相关能力(请合规使用)。
- 截图与抓取:页面截图、元素查找与文本输入一体化。
示例
import asyncio
from pydoll.browser import Chrome
from pydoll.constants import Key
async def baidu_search(query: str):
async with Chrome() as browser:
tab = await browser.start()
await tab.go_to('https://www.baidu.com')
search_box = await tab.find(tag_name='textarea', id='chat-textarea')
await search_box.insert_text(query)
await search_box.press_keyboard_key(Key.ENTER)
await asyncio.sleep(5)
asyncio.run(baidu_search('HelloGitHub'))
适用场景
- 需要免 WebDriver 的 Chromium 自动化脚本。
- 数据采集、表单填写与页面交互测试。
- 对真人化操作、反爬有要求的场景。
上手与二开建议
- 照示例用 CDP 启动 Chrome,定位元素并交互。
- 结合截图与等待策略稳定流程。
- 二开:围绕元素定位与交互封装扩展;协议将由系统从 GitHub 自动同步。
注意事项
- 上手难度中等:需理解 CDP 与异步模型。
- 绕过验证码等功能仅可用于你有权自动化的站点,遵守目标站条款与法律。