推荐一个 Python 网页自动化工具

Python中的DrissionPage详解 DrissionPage是一个创新的Python库,它巧妙地融合了driver和session的功能,为Web自动化操作提供了强大的支持。尤其在处理需要登录的网站爬虫任务时,DrissionPage简化了原本复杂的流程,无需深入分析网络数据包或JavaScript代码,开发者可以通过简洁的代码实现自动化的登录过程。这不仅提高了开发效率,还降低了出错的可能性。版权声明:本博客内容为原创,转载请保留原文链接及作者信息。参考文章DrissionPage官方文档。 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

DrissionPage 是一个基于 python 的网页自动化工具,目前在Github上有5k星标。

它既能控制浏览器,也能收发数据包,还能把两者合而为一。可兼顾浏览器自动化的便利性和 requests 的高效率。它功能强大,内置无数人性化设计和便捷功能。

它的语法简洁而优雅,代码量少,对新手友好。

背景

用 requests 做数据采集面对要登录的网站时,要分析数据包、JS 源码,构造复杂的请求,往往还要应付验证码、JS 混淆、签名参数等反爬手段,门槛较高,开发效率不高。使用浏览器,可以很大程度上绕过这些坑,但浏览器运行效率不高。

因此,这个库设计初衷,是将它们合而为一,同时实现“写得快”和“跑得快”。能够在不同需要时切换相应模式,并提供一种人性化的使用方法,提高开发和运行效率。除了合并两者,本库还以网页为单位封装了常用功能,提供非常简便的操作和语句,使用户可减少考虑细节,专注功能实现。以简单的方式实现强大的功能,使代码更优雅。

以前的版本是对 selenium 进行重新封装实现的。从 3.0 开始,作者另起炉灶,对底层进行了重新开发,摆脱对 selenium 的依赖,增强了功能,提升了运行效率。

核心能力

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

  • 无 webdriver 特征

  • 无需为不同版本的浏览器下载不同的驱动

  • 运行速度更快

  • 可以跨 iframe 查找元素,无需切入切出

  • 把 iframe 看作普通元素,获取后可直接在其中查找元素,逻辑更清晰

  • 可以同时操作浏览器中的多个标签页,即使标签页为非激活状态,无需切换

  • 可以直接读取浏览器缓存来保存图片,无需用 GUI 点击另存

  • 可以对整个网页截图,包括视口外的部分(90以上版本浏览器支持)

  • 可处理非open状态的 shadow-root

入门演示

SessionPage对象和WebPage对象的 s 模式,可用收发数据包的形式访问网页。

顾名思义,SessionPage是一个使用使用Session(requests 库)对象的页面,它使用 POM 模式封装了网络连接和 html 解析功能,使收发数据包也可以像操作页面一样便利。

并且,由于加入了本库独创的查找元素方法,使数据的采集便利性远超 requests + beautifulsoup 等组合。

SessionPage是本库几种页面对象中最简单的,我们先从它开始入手。

我们看个简单的例子,来了解SessionPage的工作方式。

# 导入
from DrissionPage import SessionPage
# 创建页面对象
page = SessionPage()
# 访问网页
page.get('https://gitee.com/explore/all')
# 在页面中查找元素
items = page.eles('t:h3')
# 遍历元素
for item in items[:-1]:
    # 获取当前<h3>元素下的<a>元素
    lnk = item('tag:a')
    # 打印<a>元素文本和href属性
    print(lnk.text, lnk.link)

输入效果:

3fc0f8ad32580d3359fbb464bd1a8975.png

对比被访问页面官网。

7427997d3eeb5e2a3b156ecc3519f3f8.png

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

79c6c4e6c4c5fc01e29bbd03bfafe630.jpeg

长按扫描下方二维码,然后点击页面中的【打开淘宝】,即可进入店铺:

6342844d2659604a6853d016e29991c3.png

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

785fbc346ba559dc046433ae8fe4ba6f.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

关于网页自动化工具DrissionPage进行爬虫的使用方法 一个基于 python 的网页自动化工具,它既能控制浏览器,也能收发数据包,还能把两者合而为一。可兼顾浏览器自动化的便利性和 requests 的高效率,可以跨 iframe 查找元素,无需切入切出 阅读详情

相关推荐

Python中DrissionPage的详细解析与实战

DrissionPage 是一个基于 Selenium 和 requests 的轻量级 Python 库,旨在简化网页操作和数据抓取。它为开发者提供了统一的 API,让用户可以方便地在浏览器模式和无浏览器模式之间切换,从而更高效地完成网页自动化任务。 本文将从 DrissionPage 的核心功能、安装配置、主要 API 以及实际应用场景等方面进行详细解析,帮助你全面掌握 DrissionPage 的使用方法。

fudaihb的博客 5704

自动化测试框架:DrissionPage(1)——安装与设置

但从 3.0 版开始,作者另起炉灶,用 chromium 协议自行实现了 selenium 全部功能,从而摆脱了对 selenium 的依赖,功能更多更强,运行效率更高,开发更灵活。因此,DrissionPage设计初衷,是将它们合而为一,能够在不同须要时切换相应模式,并提供一种人性化的使用方法,提高开发和运行效率。安装过程也是遇到了很多麻烦,下载就花了很多时间,中间下载一直断,就一直运行安装命令,总算多次安装后安装完成了。说了这么多,相信很多人已经跃跃欲试了,怎么快速搭建这套框架,先要准备一些基础环境。

up1292的博客 2万+

riscv32-gcc工具链实战:从下载到编译的完整指南

本文提供了一份详尽的riscv32-gcc工具链实战指南,涵盖从官方渠道下载预编译版本、正确选择riscv32-glibc版本、配置环境变量到实战编译的全过程。通过清晰的步骤和避坑指南,帮助开发者快速搭建稳定的RISC-V交叉编译环境,并成功编译从Hello World到Linux内核的程序。

s3t4u的博客 676

DrissionPage自动化“外挂”

已订阅的同学,请复制链接添加助教:https://a.fb78.cn/d/3t4daQT‌DrissionPage‌是一个基于Python的网页自动化工具,它能够控制浏览器、收发数据包,并且将两者结合在一起,兼顾了浏览器自动化的便利性和requests库的高效率。DrissionPage的设计初衷是将直接向服务器发送请求和通过浏览器进行交互这两种方式合而为一,提供一种人性化的使用方法,提高开发和运行效率‌。

Android Camera Sensor HDR详解

本文详细介绍了Android相机传感器(Sensor)中实现高动态范围(HDR)采集的各种技术方式。主要内容包括: Sensor HDR技术分类 帧内HDR(Single-Frame HDR):在同一帧同一像素内完成多增益采集,无运动伪影和帧率损失,包括DAG(双模拟增益)、DCG(双转换增益)等技术 帧间HDR(Multi-Frame HDR):通过多帧曝光实现,如DOL(数字重叠)、Staggered HDR等 混合HDR:结合多种技术的复合方案 详细技术原理 重点解析了DAG和DCG两种主流帧内HDR

DU_YULIN的博客 360

合并数组与非合并数组——SystemVerilog

合并型数组(packed): — 合并型数组可以实现连续的存储,赋值时不需要用 '{ }。 //合并型数组 bit [3] [7:0] b_pack // 表示3行 x 8列的数组,[3]是高维度(高维度),[7:0]是低维度(第一维) 数组中,数据排列为{b_pack[3],b_pack[2],b_pack[1],b_pack[0]},其中每个b_pack为8个bit; bit是二值逻辑,每位bit只占据1位。故24位bit只占据一个word(一般一个word为32bit)的存储空间

SummerXRT的博客 7638

python制作网页用什么软件_推荐一款 10 行 Python 代码实现网页自动化工具

各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器因此,网页也蕴含着很多有价值、我们能够用得到的资源例如,数据、歌曲、影视、文本、图片;所以,这几年来爬虫这项技术也成了很多开发人员必备的技能之一以 Python 爬虫为例,比较常用的爬虫手段是结合 Requests、正则表达式等有一定门槛的工具来完成,并且还需要对 HTML...

weixin_39562234的博客 440

西门子828D/840DSL数控机床产量数据采集实战:手把手教你绕过授权限制(附Demo源码)

本文详细介绍了西门子828D/840DSL数控机床产量数据采集的实战技术,包括绕过授权限制的替代方案和实现方法。通过分析通信协议、配置参数和数据处理,提供了一套高效且合规的数据采集解决方案,并附有Demo源码,帮助技术人员快速上手。

weixin_28278377的博客 762

推荐一款 10 行 Python 代码实现网页自动化工具

各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器因此,网页也蕴含着很多有价值、我们能够用得到的资源例如,数据、...

cainiao_python的博客 1641

S32K344 Bootloader实战:一个按键实现从Boot到App的无缝跳转(附完整代码)

本文详细介绍了基于NXP S32K344微控制器的Bootloader开发实战,重点解析如何通过一个硬件按键实现从Boot到App的可靠跳转。内容涵盖内存分区规划、中断向量表重映射、外设初始状态管理等核心要素,并提供了完整的代码示例和调试技巧,适用于汽车电子和工业控制等高可靠性应用场景。

weixin_29192365的博客 307

[自动化工具] 解放双手的利器:「自动邮件平台」工具助你高效搞定重复通知任务

摘要:自动邮件平台是一款零门槛自动化工具,帮助用户高效处理重复性邮件任务。该平台支持两种调度模式(指定日期和间隔天数),无需编码即可快速设置账单提醒、活动通知等任务。提供免费托管版(小时级调度)和自主部署版(分钟级调度),满足不同精度需求。典型应用场景包括客户跟进、系统监控等周期性任务。用户只需三步即可完成设置,还能扩展定制化功能。该工具让非技术人员也能轻松实现邮件自动化,释放时间专注更重要的工作。

每日出拳老爷子的博客 108

推荐一款 10 行 Python 代码实现网页自动化工具!解放双手!

各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器 因此,网页也蕴含着很多有价值、我们能够用得到的资源 例如,数据、歌曲、影视、文本、图片;所以,这几年来爬虫这项技术也成了很多开发人员必备的技能之一 以 Python 爬虫为例,比较常用的爬虫手段是结合 Requests、正则表达式等有一定门槛的工具来完成,并且还需要对 HTML、Web 具有一定的基础 这把很多开发同学拒之门外,也让很多初学者花费很多功夫和时间来学习爬虫这些技

爬遍所有网站 2590

Python进阶005:修改Jupyter Notebook的工作路径

1、Jupyter Notebook简介 2、修改Jupyter Notebook的工作路径 如下三个步骤: 一、安装notebook 在CMD命令行中输入: pip install notebook 二、启动notebook jupyter notebook 启动后发现是在你的用户目录下,如下图所示,但是该目录下有很多的其他文件或文件夹,因此我想把这个环境切换到我单门创建的一个文件夹中。 三、创建notebook的配置文件 在CMD命令行中执行: jupyter notebook --genera

若北辰 1386

python 网页自动处理_推荐一款 10 行 Python 代码实现网页自动化工具

各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器因此,网页也蕴含着很多有价值、我们能够用得到的资源例如,数据、歌曲、影视、文本、图片;所以,这几年来爬虫这项技术也成了很多开发人员必备的技能之一以 Python 爬虫为例,比较常用的爬虫手段是结合 Requests、正则表达式等有一定门槛的工具来完成,并且还需要对 HTML、...

weixin_33771582的博客 726

S7-1200与ABB机器人进行SOCKET通信的具体方法示例

S7-1200与ABB机器人进行SOCKET通信的具体方法示例

Robot_PLC_HMI_Automation 3294

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

img转vmdk工具_推荐一款 10 行 Python 代码实现网页自动化工具

各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器因此,网页也蕴含着很多有价值、我们能够用得到的资源例如,数据、歌曲、影视、文本、图片;所以,这几年来爬虫这项技术也成了很多开发人员必备的技能之一以 Python 爬虫为例,比较常用的爬虫手段是结合 Requests、正则表达式等有一定门槛的工具来完成,并且还需要对 ...

weixin_39889487的博客 259

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

网页控制台调用click()失败_推荐一款 10 行 Python 代码实现网页自动化工具

各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器因此,网页也蕴含着很多有价值、我们能够用得到的资源例如,数据、歌曲、影视、文本、图片;所以,这几年来爬虫这项技术也成了很多开发人员必备的技能之一以 Python 爬虫为例,比较常用的爬虫手段是结合 Requests、正则表达式等有一定门槛的工具来完成,并且还需要对 ...

weixin_34518190的博客 679

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

推荐这3个自动化爬虫工具,非常强大!

网络爬虫是一种常见的数据采集技术,你可以从网页、 APP上抓取任何想要的公开数据,当然需要在合法前提下。与屏幕抓取不同,屏幕抓取只复制屏幕上显示的像素,网络爬虫提取的是底层的HTML代码,以及存储在数据库中的数据。一般使用抓包工具获取HTML,然后使用网页解析工具提取数据。你可以使用Python编写爬虫代码实现数据采集,也可以使用自动化爬虫工具,这些工具对爬虫代码进行了封装,你只需要配置下参数,就可以自动进行爬虫。这里推荐3款不错的自动化爬虫工具,八爪鱼、亮数据、Web Scraper。

分享Python、数据分析、人工智能前沿知识 2192

Helium: Python中更简洁易用的网页自动化工具,Selenium的高级扩展和封装

我们知道在Python中,Selenium是一种非常强大且广泛使用的库,专门用于网页自动化。然而,对于一些初学者或者像小编这样希望找到更简洁易用库的开发者来说,使用Selenium可能会有一些挑战和不情愿。小编找了好久,终于找到一个比Selenium更简洁易用的Helium库,它是一个基于Selenium的工具,通过重新定义一些操作,使网页自动化更加简单易用。

公众号【伤心的辣条】资料领取~ 1982

推荐一款模拟浏览器自动化操作神器!Mechanize

Mechanize是Python中的一个库,它被设计用来自动化网页浏览和数据提取任务。通过模拟真实浏览器的行为,如填写表单、点击链接、处理Cookie等,Mechanize使得开发者可以用脚本来自动执行这些通常需要人工操作的任务。这个库特别适合于那些需要与网站交互,比如自动登录或者爬取需要通过表单提交才能访问的内容的情况。

2301_78843735的博客 891

Python自动化测试工具有哪些?哪一个更适合你呢?

Python自动化测试工具有哪些? ,我们先说说框架吧,常用的Python自动化测试框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。软件测试的自动化在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。自动化测试以人为驱动的测试行为转化为机器执行的一种过程。 实现软件测试自动化得用到一些Python自动化测试框架和工具,让我们看看都有哪些?

weixin_67553250的博客 2971

python自动化测试工具

Python自动化测试工具有哪些?,我们先说说框架吧,常用的Python自动化测试框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。软件测试的自动化在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件python图形化编程软件下载,图形化python软件有哪些。自动化测试以人为驱动的测试行为转化为机器执行的一种过程。实现软件测试自动化得用到一些Python自动化测试框架和工具,让我们看看都有哪些?

2301_79533350的博客 284

5 个方便好用的 Python 自动化脚本,拿来即用_网页阅读脚本

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。工具都帮大家整理好了,安装就可直接上手!当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

2401_84538278的博客 1101

推荐一款新的自动化测试框架:DrissionPage

DrissionPage是一款融合浏览器自动化和数据包请求的Python工具,结合了Selenium和requests的优点。它采用自主研发内核,摆脱了对selenium的依赖,具有无特征识别、运行高效、跨iframe操作、多标签控制等特性,语法简洁。安装只需pip install DrissionPage并配置浏览器路径即可使用。通过模式切换功能,可灵活应对不同场景,如先用浏览器登录后切到requests模式抓取数据。相比传统工具,DrissionPage操作更简便高效,适合网页自动化开发和测试需求。

2401_86343726的博客 843
上一篇: 【月收 入9 k起 +不限经验】招 募全职或非 全职外贸电商合伙人,欢迎了解......
下一篇: 2万字!Pandas 常用操作图解
codingpy
博客等级 码龄11年 1870粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值