admin 管理员组文章数量: 887021
大家好,今天给大家分享的是一个基于 python 的网页自动化工具DrissionPage
。
它既能控制浏览器,也能收发数据包,还能把两者合而为一。
可兼顾浏览器自动化的便利性和 requests 的高效率。
它功能强大,内置无数人性化设计和便捷功能。
它的语法简洁而优雅,代码量少,对新手友好。
项目介绍
最新版本:4.0.5.6
支持系统:Windows、Linux、Mac
python 版本:3.6 及以上
支持应用:Chromium 内核浏览器(如 Chrome、Edge),electron 应用
Drission 是本库作者自创的单词,为 Driver 和 Session 的合体,因此 Drission 读作“拽神”。
Page 则表示本库用 POM 模式封装。
功能特性
安装使用
运行环境
-
操作系统:Windows、Linux 或 Mac。
-
python 版本:3.6 及以上
-
支持浏览器:Chromium 内核(如 Chrome 和 Edge)
安装
请使用 pip 安装 DrissionPage:
pip install DrissionPage
实战示例
1.自动登录码云
网址:登录 - Gitee
按F12
查看代码,可见两个输入框都可用id
属性定位,如图所示。
有id属性的元素获取非常简单。两个输入框直接用id属性定位即可。
登录按钮没有id属性,但可观察到它是第一个value属性为’登 录’的元素,用中文定位也可以增强代码可读性。
由于使用浏览器登录,这里用ChromiumPage来控制浏览器。
示例代码:
from DrissionPage import ChromiumPage
# 用 d 模式创建页面对象(默认模式)
page = ChromiumPage()
# 跳转到登录页面
page.get('https://gitee/login')
# 定位到账号文本框并输入账号
page.ele('#user_login').input('您的账号')
# 定位到密码文本框并输入密码
page.ele('#user_password').input('您的密码')
# 点击登录按钮
page.ele('@value=登 录').click()
登录成功。
2.采集猫眼电影榜
目标网址:TOP100榜 - 猫眼电影 - 一网打尽好电影
采集目标:排名、电影名称、演员、上映时间、分数
按F12
,可以看到每个电影信息都包含在<dd>
元素中,因此可批量获取<dd>
元素,遍历它们并再从其中获取每个电影的信息。
以下代码可直接运行。
需要注意的是,这里用到记录器对象DataRecorder
。
from DrissionPage import ChromiumPage
from DataRecorder import Recorder
# 创建页面对象
page = ChromiumPage()
# 创建记录器对象
recorder = Recorder('data.csv')
# 访问网页
page.get('https://www.maoyan/board/4')
while True:
# 遍历页面上所有 dd 元素
for mov in page.eles('t:dd'):
# 获取需要的信息
num = mov('t:i').text
score = mov('.score').text
title = mov('@data-act=boarditem-click').attr('title')
star = mov('.star').text
time = mov('.releasetime').text
# 写入到记录器
recorder.add_data((num, title, star, time, score))
# 获取下一页按钮,有就点击
btn = page('下一页', timeout=2)
if btn:
btn.click()
page.wait.load_start()
# 没有则退出程序
else:
break
recorder.record()
程序生成一个结果文件 data.csv,内容如下:
1,我不是药神,"主演:徐峥,周一围,王传君",上映时间:2018-07-05,9.6
2,肖申克的救赎,"主演:蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿",上映时间:1994-09-10(加拿大),9.5
3,海上钢琴师,"主演:蒂姆·罗斯,比尔·努恩 ,克兰伦斯·威廉姆斯三世",上映时间:2019-11-15,9.3
4,绿皮书,"主演:维果·莫腾森,马赫沙拉·阿里,琳达·卡德里尼",上映时间:2019-03-01,9.5
5,霸王别姬,"主演:张国荣,张丰毅,巩俐",上映时间:1993-07-26,9.4
下面省略。。。
项目地址
https://github/g1879/DrissionPage
功能强大!又一个基于 python 的网页自动化工具 - BTool博客 - 在线工具软件,为开发者提供方便
版权声明:本文标题:功能强大!又一个基于 python 的网页自动化工具 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726436780h960372.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论