一、概述
DrissionPage是一个用于自动化Web浏览器操作的工具,它结合了浏览器自动化与数据抓取的功能。这个工具旨在提供一种简单易用且功能强大的方式来实现网页自动化任务,比如表单提交、页面导
航、元素点击等操作,同时也支持从网页中提取数据。
二、和selenium的区别
DrissionPage
特点和优势:
- 集成了Selenium和Requests的功能,可以无缝切换
- 支持无头浏览器和有头浏览器
- 简化了元素定位和操作的API
- 内置了许多常用的功能,如等待元素加载、自动重试等
- 对中文用户友好,文档和社区支持较好
缺点: - 相对较新,生态系统不如Selenium和Playwright成熟
- 主要面向中文用户,国际化程度较低
- 在处理复杂的动态网页时可能不如Playwright灵活
Selenium
特点和优势:
- 历史悠久,生态系统成熟,有大量的资源和插件
- 支持多种编程语言(Python, Java, C#, Ruby等)
- 与大多数主流浏览器兼容
- 广泛应用于Web自动化测试
- 社区大,问题容易找到解决方案
缺点: - 相对较慢,特别是在启动浏览器和执行操作时
- API设计较为底层,需要更多的代码来完成复杂操作
- 对于现代Web应用(如单页应用)的支持不如Playwright
- 需要单独下载和管理浏览器驱动
三、安装
pip install DrissionPage
四、实战
爬取豆瓣top250的电影名称
from DrissionPage import ChromiumPage # 创建对象
page = ChromiumPage()
# 访问网页
page.get('https://movie.douban.com/top250')
# 等待页面跳转
page.wait.load_start() flag = True
while flag: # 获取所有标题 links = page.eles('.hd') # 遍历并打印结果 for link in links: print(link.text) # 查找下一页的按钮 nextButton = page('.next') # 如果没有找到则结束 if not nextButton.ele('tag:a'): flag = False else: nextButton.click() # 关闭浏览器
page.quit()
成功打印豆瓣top250的电影名称