当前位置: 首页 > news >正文

爬虫笔记21——DrissionPage自动化框架的使用

DrissionPage自动化框架的使用

  • 前言
  • DrissionPage的使用
    • 1、准备工具及初步了解
    • 2、DrissionPage的使用

前言

有人说,自动化框架降低了逆向的成本,当遇到不会的逆向,我用自动化解决问题,这其实是有道理的,哈哈哈~。但是,自动化框架其实也不一定能解决所有问题,比如selenium自动化框架也有其局限性,比如某些网站使用selenium自动化是获取不到的,这个网站就是个例子。你们可以用selenium试一下,我前面的笔记有讲到selenium自动化框架的使用。所以,今天我们来记录一下新的自动化框架,DrissionPage。

DrissionPage的使用

DrissionPage是自动化工具,DrissionPage不同于selenium的区别在于,他不需要安装驱动,他是直接作用于浏览器,同样的可以直接对浏览器进行操作,还可以直接监听动态接口可以直接获取动态接口。

1、准备工具及初步了解

下载DrissionPage包

pip install DrissionPage

DrissionPage是我们国人自己写的自动化框架,所以window系统用起来可能比Mac系统好,目前支持的浏览器:Chromium 内核(如 Chrome 和 Edge)。如果遇到不会的问题,可以直接在官网找到开发者的邮箱,然后去联系他,即使我们都不认识,但是大佬看到有价值的问题也是会去想方法解决的。
DrissionPage访问模式有 3种,它们通常是程序的入口:

  • ChromiumPage:单纯用于操作浏览器的页面对象;
  • WebPage:整合浏览器控制和收发数据包于一体的页面对象;
  • SessionPage:单纯用于收发数据包的页面对象(类似于requests发请求)

2、DrissionPage的使用

首先导入ChromiumPage类并创建一个对象

导入chromiumPage对象from DrissionPage import chromiumPagepage = chromiumPage()
#这里其实类似于requests请求,这样就初步自动化打开一个网页了
page.get('https://www.baidu.com')# 其他操作:option = ChromiumOptions.set_browser_path(r'Chrome或者Edge浏览器的路径')
# 浏览器页面最大窗口化
option.set_argument('--start-maximized')# 设置窗口初始大小
option.set_argument('--window-size', '600,800')
# 设置不加载图片,声音
option.no_imgs(True).mute(True)# 无头浏览器,就是后台在运行,但是不显示浏览器页面,这里只支持window系统
option.headless()page = ChromiumPage(addr_or_opts=option)# 窗口最大最小
page.set.window.max()
page.set.window.mini()
page.set.window.size(800, 800)# 修改网页的请求头
page.set.headers({"User-Agent": "1654"})

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 30秒内批量删除git本地分支
  • 干货| Python日常高频写法总结
  • 【图文教程】Hexo+GitHubPages搭建个人博客
  • Matlab处理H5文件
  • golang多版本管理工具g
  • 鸿蒙HarmonyOS开发:如何灵活运用动画效果提升用户体验
  • 使用 Charles 模拟手机弱网测试
  • AppenTalk | 不止于赛场,巴黎奥运会上的中国AI科技
  • APP支付宝授权获取code uniapp
  • 案例 | 生产制造中的直线度测量
  • jmeter中添加集合点
  • 华为od面试经验2024-面经
  • CAD图纸加密软件有哪些?10款超级好用的CAD图纸加密软件推荐
  • 字符串算法
  • wangeditor编辑器自定义按钮和节点,上传word转换html,文本替换
  • php的引用
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Docker: 容器互访的三种方式
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • gops —— Go 程序诊断分析工具
  • leetcode46 Permutation 排列组合
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • MySQL用户中的%到底包不包括localhost?
  • Promise面试题2实现异步串行执行
  • Python语法速览与机器学习开发环境搭建
  • Unix命令
  • vue:响应原理
  • webpack4 一点通
  • 阿里研究院入选中国企业智库系统影响力榜
  • 大整数乘法-表格法
  • 前嗅ForeSpider采集配置界面介绍
  • 如何实现 font-size 的响应式
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 使用agvtool更改app version/build
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • ​​​【收录 Hello 算法】9.4 小结
  • "无招胜有招"nbsp;史上最全的互…
  • #if 1...#endif
  • #每天一道面试题# 什么是MySQL的回表查询
  • $L^p$ 调和函数恒为零
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (JS基础)String 类型
  • (分类)KNN算法- 参数调优
  • (规划)24届春招和25届暑假实习路线准备规划
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (十二)Flink Table API
  • (十七)Flink 容错机制
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转)visual stdio 书签功能介绍
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .apk文件,IIS不支持下载解决
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET运行机制
  • .sh