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