🚀 DrissionPage库简介

  • 官方介绍:

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

  • 支持浏览器:Chromium 内核(如 Chrome 和 Edge)

  • git仓库:https://gitee.com/g1879/DrissionPage

  • 使用说明:https://www.drissionpage.cn/

🚀 环境搭建

1
2
3
4
5
6
7
8
# pip安装
pip install DrissionPage

# 如果pip安装速度太慢,就使用清华源来安装,如下
pip install DrissionPage -i https://pypi.tuna.tsinghua.edu.cn/simple

# 升级
pip install DrissionPage --upgrade

新建一个python文件,填写以下代码并运行。如果可以正常启动了浏览器并且访问了百度页面,说明可直接使用。

1
2
3
4
from DrissionPage import ChromiumPage

page = ChromiumPage()
page.get('http://baidu.com')

如果上面的步骤提示出错,说明程序没在系统里找到浏览器,需要手动配置浏览器路径。

新建一个临时 py 文件,并输入以下代码,填入您电脑里的浏览器 exe 文件路径,然后执行。

1
2
3
4
5
# 这段代码只要运行一次即可,不用写到正式程序里。
from DrissionPage import ChromiumOptions

path = r'D:\Chrome\Chrome.exe' # 请改为你电脑内Chrome可执行文件路径
ChromiumOptions().set_browser_path(path).save()

🚀 使用示例

官方教程:http://g1879.gitee.io/drissionpagedocs/demos/douban_book_pics/

✈️ 登录gitee

把以下代码复制到编辑器,把账号和密码改为您自己的,可直接执行看到运行结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from DrissionPage import ChromiumPage

# 创建页面对象,并启动或接管浏览器
page = ChromiumPage()
# 跳转到登录页面
page.get('https://gitee.com/login')

# 定位到账号文本框,获取文本框元素
ele = page.ele('#user_login')
# 输入对文本框输入账号
ele.input('您的账号')
# 定位到密码文本框并输入密码
page.ele('#user_password').input('您的密码')
# 点击登录按钮
page.ele('@value=登 录').click()

✈️ 下载星巴克产品图片

以下代码可直接运行并查看结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from DrissionPage import SessionPage
from re import search

# 以s模式创建页面对象
page = SessionPage()
# 访问目标网页
page.get('https://www.starbucks.com.cn/menu/')

# 获取所有class属性为preview circle的元素
divs = page.eles('.preview circle')
# 遍历这些元素
for div in divs:
# 用相对定位获取当前div元素后一个兄弟元素,并获取其文本
name = div.next().text

# 在div元素的style属性中提取图片网址并进行拼接
img_url = div.attr('style')
img_url = search(r'"(.*)"', img_url).group(1)
img_url = f'https://www.starbucks.com.cn{img_url}'

# 执行下载
page.download(img_url, r'.\imgs', rename=name)