第一个自动化脚本
本教程共 42 篇 · 第 5 篇 · 更新于 2026-07-29 · 约 5 分钟阅读
5. 第一个自动化脚本
本节目标:跑通第一个完整脚本,体验”打开网页 -> 定位元素 -> 交互操作”的完整流程。学完能建立直观印象。
前面讲了不少概念。现在来点实际的。
我们用 DrissionPage 在百度搜一个词,然后打印搜索结果。
完整代码
直接复制运行:
from DrissionPage import ChromiumPage
# 创建页面对象,自动启动浏览器
page = ChromiumPage()
# 访问百度首页
page.get('https://www.baidu.com')
# 定位搜索框,输入关键词
page('#kw').input('DrissionPage')
# 点击搜索按钮
page('#su').click()
# 等待页面加载完成
page.wait.load_start()
# 获取所有搜索结果标题
results = page.eles('tag:h3')
# 打印结果
for i, item in enumerate(results, 1):
print(f'{i}. {item.text}')
# 关闭浏览器
page.quit()
运行效果:浏览器自动打开,搜索”DrissionPage”,然后控制台打印出结果标题。
逐行解析
创建页面对象
page = ChromiumPage()
这行代码启动浏览器,创建页面对象。后面的操作都基于这个对象。
访问网页
page.get('https://www.baidu.com')
get() 方法让浏览器打开指定网址。
定位并操作元素
page('#kw').input('DrissionPage')
page('#kw') 用 CSS 选择器定位搜索框。.input() 往里面输入文字。
page('#su').click()
定位搜索按钮,点击它。
等待加载
page.wait.load_start()
等待新页面开始加载。这步很重要,不加可能获取到旧页面的内容。
获取多个元素
results = page.eles('tag:h3')
eles() 返回所有匹配的元素(复数)。tag:h3 是定位语法,表示找所有 <h3> 标签。
关闭浏览器
page.quit()
任务完成后关闭浏览器,释放资源。
用 SessionPage 也能做
同样的功能,用 SessionPage 更轻量:
from DrissionPage import SessionPage
page = SessionPage()
page.get('https://www.baidu.com/s?wd=DrissionPage')
results = page.eles('tag:h3')
for i, item in enumerate(results, 1):
print(f'{i}. {item.text}')
不需要启动浏览器,直接发请求获取结果。速度更快,但看不到浏览器操作过程。
TIP:新手建议先用 ChromiumPage。能看到浏览器一步步操作,出了问题也好排查。熟练后再用 SessionPage 提升效率。
可能遇到的问题
报错找不到浏览器:说明 Chrome 路径没配置。回到第 3 章设置浏览器路径。
元素定位失败:可能是页面还没加载完。在操作前加 page.wait.load_start()。
浏览器没关:脚本异常退出时浏览器可能残留。在代码末尾记得加 page.quit()。
下一章我们深入学习 ChromiumPage 的创建和浏览器连接方式。