DrissionPag:不一样爬虫库

1,566次阅读
没有评论

共计 1241 个字符,预计需要花费 4 分钟才能阅读完成。

DrissionPag:不一样爬虫库

写这篇文章是因为从hellogithub看到2023年度热榜上的一些项目,其中这个项目DrissionPage 就挺有意思的。虽然博主爬虫爬的不多,偶尔爬爬,看了这个项目之后觉得值得研究一下。

在之前的一篇文章中,博主用selenium还在找 chrome driver在到处找资源,这不DrissionPage 就不依赖于 webdriver 也省了不少心。

对于静态页面其实抓取数据很简单,但是目前大部分都是动态的,甚至有需要登陆状态等,使用chrome 等浏览器就可以不用去处理js加载等多种问题,不然你要自己去处理很麻烦耗时,影响效率。这也是selenium 和DrissionPage诞生的主要原因吧!

看了下DrissionPage的文档,早期也是依赖于selenium,在后来的3.x开始摆脱

selenium 的依赖,想要”开发的快,爬的也快”。

DrissionPage 看目前的最新的版本是4.0,一些相关的特性如下:

🎇 强大的自研内核

本库采用全自研的内核,内置了 N 多实用功能,对常用功能作了整合和优化,对比 selenium,有以下优点:

  • 无 webdriver 特征
  • 无需为不同版本的浏览器下载不同的驱动
  • 运行速度更快
  • 可以跨 iframe 查找元素,无需切入切出
  • 把 iframe 看作普通元素,获取后可直接在其中查找元素,逻辑更清晰
  • 可以同时操作浏览器中的多个标签页,即使标签页为非激活状态,无需切换
  • 可以直接读取浏览器缓存来保存图片,无需用 GUI 点击另存
  • 可以对整个网页截图,包括视口外的部分(90以上版本浏览器支持)
  • 可处理非open状态的 shadow-root

🎇 亮点功能

除了以上优点,本库还内置了无数人性化设计。

  • 极简的语法规则。集成大量常用功能,代码更优雅
  • 定位元素更加容易,功能更强大稳定
  • 无处不在的等待和自动重试功能。使不稳定的网络变得易于控制,程序更稳定,编写更省心
  • 提供强大的下载工具。操作浏览器时也能享受快捷可靠的下载功能
  • 允许反复使用已经打开的浏览器。无需每次运行从头启动浏览器,调试超方便
  • 使用 ini 文件保存常用配置,自动调用,提供便捷的设置,远离繁杂的配置项
  • 内置 lxml 作为解析引擎,解析速度成几个数量级提升
  • 使用 POM 模式封装,可直接用于测试,便于扩展
  • 高度集成的便利功能,从每个细节中体现
  • 还有很多细节,这里不一一列举,欢迎实际使用中体验:D

安装

pip install DrissionPage

示例

from DrissionPage import ChromiumPage

page = ChromiumPage()
page.get('http://g1879.gitee.io/DrissionPageDocs')

上例是一个简单的基于chrome 打开指定网页获取数据的demo,想要了解更多,还是去看 DrissionPage 的使用文档,也不多。

项目文档地址:https://g1879.gitee.io/drissionpagedocs/

项目地址:https://github.com/g1879/DrissionPage

正文完
请博主喝杯咖啡吧!
post-qrcode
 
admin
版权声明:本站原创文章,由 admin 2024-02-05发表,共计1241字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码