您的位置:首页 > 新闻 > 会展 > python 比webdriver更好用的ChromiumPage

python 比webdriver更好用的ChromiumPage

2024/10/11 8:26:10 来源:https://blog.csdn.net/dandanforgetlove/article/details/140153802  浏览:    关键词:python 比webdriver更好用的ChromiumPage

优点(目前发现的):

  1. 不用配合selenium
  2. 不用下载对应浏览器的webdriver,不用对应浏览器版本
  3. 不用设置webdriver路径之类的设置
  4. 目前没看到有出现像webdriver类似的浏览器被控制的提示,使用过程中好像也没被检测出来。
  5. 每次不会重新打开一个浏览器,不会关闭。
  6. 控制滚动条更方便,不用像webdriver写js去执行,效果还不好。
  7. 可以监控网络请求,比webdriver方便多了。

chromiumPage介绍:

DrissionPage 是一个基于 python 的网页自动化工具。它既能控制浏览器,也能收发数据包,还能把两者合而为一。可兼顾浏览器自动化的便利性和 requests 的高效率。它功能强大,内置无数人性化设计和便捷功能。它的语法简洁而优雅,代码量少,对新手友好。

  • 支持系统:Windows、Linux、Mac;
  • python 版本:3.6 及以上;
  • 支持应用:Chromium 内核浏览器(如 Chrome、Edge),electron 应用;

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

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

ChromiumPage 依赖

安装 drissionPage

pip3 install drissionPage

ChromiumPage windows报错

刚开始执行的时候,直接报错:

for filename in filenames:
TypeError: 'WindowsPath' object is not iterable

百度、Google无果。

最后自己调试解决的。

报错:

解决:

打开报错的类,编辑代码。

思路,看代码是循环的时候出现报错,filenames对象是一个WindowsPath类型。循环的时候报错。看代码是循环文件,便在前面加了一个类型判断。

ChromiumPage 使用

以下为一个小示例

        from DrissionPage import ChromiumPagedriver = ChromiumPage()
# 监听指定的urldriver.listen.start('aweme/v1/web/comment/list/')
# 访问链接driver.get('https://www.douyin.com/video/7382814024410336552')#滚动滚动条到底部,获取监听结果for page in range(3):print(f'正在采集第{page + 1}页的数据内容')driver.scroll.to_bottom()resp = driver.listen.wait()json_data = resp.response.body
# 保存文件(可以注释)save_comments_to_csv(json_data.get('comments', []), csv_writer)# 获取元素moreButton = driver.eles("tag:button@class=jlqd8usT comment-reply-expand-btn")# moreButton = driver.eles("tag:button@class=bgz8RRCZ")
# 增加新的监听driver.listen.start('aweme/v1/web/comment/list/reply/')for more in moreButton:
# 执行元素动作more.click()
# 等待结果resp = driver.listen.wait()
# 获取结果json_data = resp.response.bodyprint(json_data)

参考链接:

元素定位&操作

自动化测试框架:DrissionPage_chromiumpage-CSDN博客x

相关使用

爬虫基础之自动化工具 DrissionPage 的使用_浏览器_功能_httpsg

更多使用

一个神奇的自动化爬虫利器 - DrissionPagae_drissionpage设置代理-CSDN博客

https://www.drissionpage.cn/ChromiumPage/screen/ 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com