课程 4:操纵浏览器与网络爬虫 资源下载
适合人群:已完成课程0和课程1,对Alma有一定了解的学员
课前准备
打开自己的 AI课程文件夹,在里面新建一个文件夹,名称为本课编号(如 lesson-4),然后在 Alma 里面新建一个聊天,设置该项目的文件夹指向新建的文件夹,再把课程资源下载并放入该文件夹。
课程目标
- 掌握向 Alma 表达自动化需求的方法
- 学会设计数据收集的目标和输出格式
- 能够使用自然语言引导 Alma 完成任务
- 了解常见问题的应对策略
第一部分:浏览器自动化
1.1 agent-browser 技能简介
Alma 内置了 agent-browser 技能,这是一个由 Vercel Labs 开发的浏览器自动化工具。你不需要了解任何编程知识,只需要用自然语言告诉 Alma 你想做什么。
核心思想:Alma 是一个 AI 代理,它会自动将你的自然语言请求转化为具体的浏览器操作命令。
1.2 实操案例:收集广州市教师招聘信息
第一步:明确目标
在开始之前,先想清楚你要做什么:
目标:收集广州市教育局直属事业单位 2025 年的教师招聘信息
第二步:设计输出格式
确定你希望 Alma 交付什么:
数据结构:
| 职位名称 | 招聘学校/单位 | 学科/岗位类别 | 学历要求 | 经验要求 | 其他条件 |
|---|
文档形式:Excel 文件(.xlsx),保存到 AIDOCS/ 文件夹,命名为 guangzhou_teacher_jobs.xlsx
第三步:用自然语言向 Alma 提出需求
基础提示词:
帮我访问广州市教育局网站(https://jyj.gz.gov.cn),找到教师招聘相关的公告,收集招聘信息并整理成 Excel 文件。详细提示词(推荐):
我要收集广州市教育局直属事业单位 2025 年的教师招聘信息。请执行以下操作:
1. 访问广州市教育局官网:https://jyj.gz.gov.cn
2. 查找教师招聘相关的公告或公示
3. 提取每个职位的以下信息:
- 职位名称
- 招聘学校/单位
- 学科/岗位类别
- 学历要求
- 经验要求
- 其他条件
4. 将所有收集到的数据整理成 Excel 文件
5. 文件命名为 guangzhou_teacher_jobs.xlsx
6. 保存到 AIDOCS/ 文件夹第四步:应对可能出现的情况
Alma 在执行过程中可能会遇到以下情况,你需要准备好相应的提示词:
情况 1:找不到招聘公告
应对提示词:
当前页面上没有找到招聘公告,请尝试以下方法:
1. 滚动页面查看更多内容
2. 点击"通知公告"或其他相关栏目
3. 使用快照功能查看所有可交互元素
4. 如果确实没有招聘信息,请告诉我,我会换个目标网站情况 2:页面加载缓慢
应对提示词:
页面加载时间较长,请:
1. 等待页面完全加载后再继续
2. 如果超时,可以刷新页面重新尝试
3. 或者截图发送给我,让我看看具体情况情况 3:需要登录或有验证码
应对提示词:
网站需要登录或有验证码,请:
1. 开启有头模式(显示浏览器窗口)
2. 让我看到需要输入什么信息
3. 我会手动完成登录后,你再继续操作情况 4:提取的内容不完整
应对提示词:
提取的招聘信息不完整,请:
1. 逐个访问每个招聘公告详情页
2. 从详情页中提取完整的职位信息
3. 确保每条记录都包含我要求的所有字段第五步:获取结果并验证
当 Alma 完成任务后:
- 检查 AIDOCS/ 文件夹中是否有
guangzhou_teacher_jobs.xlsx - 打开 Excel 文件,检查数据是否完整
- 验证数据格式是否符合预期的数据结构
- 如果有问题,向 Alma 提出修改建议
验证提示词:
请检查生成的 Excel 文件,确保:
1. 所有字段都已填写完整
2. 数据格式正确
3. 没有重复或遗漏的记录
4. 如果有任何问题,请告诉我具体是什么问题,我会提供修改建议第二部分:网络爬虫开发
2.1 为什么要学 BeautifulSoup?
agent-browser 技能适合单个页面的操作,但当你需要批量处理多个页面,或者需要更灵活的数据提取逻辑时,使用 Python 代码会更高效。
2.2 BeautifulSoup 简介
除了使用 agent-browser,你还可以让 Alma 帮你编写 Python 代码来解析网页。这适合需要批量处理大量页面的场景。
2.3 实操案例:爬取教育资讯文章
第一步:明确目标
目标:爬取某教育网站的 10 篇最新文章,提取标题、链接和摘要
第二步:设计输出格式
数据结构:
| 序号 | 标题 | 链接 | 摘要 | 发布时间 |
|---|
文档形式:Excel 文件,保存到 AIDOCS/ 文件夹
第三步:向 Alma 提出需求
提示词:
我要爬取 https://example.com/education 网站上的 10 篇最新文章。请帮我:
1. 编写一个 Python 脚本,使用 requests 和 BeautifulSoup 库
2. 访问目标网站,解析文章列表
3. 提取每篇文章的以下信息:
- 标题
- 链接
- 摘要(如果有)
- 发布时间(如果有)
4. 将结果保存为 Excel 文件,命名为 education_articles.xlsx
5. 保存到 AIDOCS/ 文件夹
请直接运行脚本并生成结果文件,不要只给我代码。第四步:应对可能出现的情况
情况 1:网站有反爬机制
应对提示词:
网站可能有反爬机制,请尝试:
1. 添加 User-Agent 伪装浏览器
2. 设置请求间隔,避免请求过快
3. 如果仍然失败,请告诉我,我会考虑更换目标网站情况 2:页面结构复杂,解析困难
应对提示词:
页面结构比较复杂,请:
1. 截图发送给我,让我看看页面结构
2. 使用更灵活的解析方法
3. 如果某些字段确实无法提取,可以跳过,但要记录缺失的字段第五步:获取结果并验证
验证提示词:
请检查生成的 Excel 文件,确保:
1. 10 篇文章都已收集
2. 标题、链接等字段完整
3. 数据格式正确
4. 如果有任何问题,请告诉我第三部分:扩展工具
3.1 除了技能和 MCP 服务器
除了使用 Alma 的技能和 MCP 服务器来完成爬虫任务,你还可以直接让 Alma 编写代码。本课前面介绍的方法已经覆盖了大多数场景。
3.2 常用爬虫工具 MCP
如果你配置了 MCP 服务器,以下工具可以帮助你进行网页数据收集:
- web-search-prime:网络搜索工具,可快速获取相关信息
- web-reader:网页阅读工具,可提取网页文本内容
- zai-vision-mcp:视觉分析工具,可识别截图中的文本和元素
这些 MCP 工具通常与技能配合使用,可以处理更复杂的网页交互场景。
第四部分 git 代码仓库管理
什么是 Git
Git 是一个代码版本管理工具,就像游戏的存档功能。当你玩游戏时,可以随时保存进度,如果后面玩坏了,可以回到之前的存档继续玩。
Git 的作用就是帮你给代码"存档",记录每一次修改。
| 生活中的例子 | Git 中的对应 |
|---|---|
| 游戏存档 | Commit(提交) |
| 回到之前的存档 | Checkout(回退) |
| 存档列表 | Commit History(提交历史) |
Git 的基本概念
工作区、暂存区、仓库
不要被这些词吓到,我们用一个简单的比喻来理解:
| 区域 | 作用 | 比喻 |
|---|---|---|
| 工作区 | 你正在编辑文件的地方 | 你的办公桌 |
| 暂存区 | 准备提交的文件暂存的地方 | 准备放进档案柜的文件夹 |
| 仓库 | 已经提交的记录 | 档案柜 |
流程:你在办公桌(工作区)修改文件 -> 放进文件夹(暂存区) -> 放进档案柜(仓库)
Commit(提交)
Commit 是 Git 中最重要的概念,就是"存档"的意思。
每次 Commit 都会记录:
- 修改了哪些文件
- 修改的具体内容
- 提交的时间和说明
为什么需要 Commit:
- 记录修改历史,方便查看
- 如果后面出问题了,可以回到之前的版本
- 和其他人协作时,可以同步代码
Checkout(回退)
Checkout 就是"读取存档",回到之前的某个提交状态。
什么时候需要回退:
- 代码写乱了,想回到之前干净的状态
- 发现某个版本有 bug,想回到之前的版本
- 想查看某个历史版本的内容
在 Alma 中使用 Git
Alma 的 Git 界面
在 Alma 界面的右侧,有一个"Commit"标签页,这里会显示你的代码修改历史。
查看提交历史:
- 点击 Alma 右侧的"Commit"标签页
- 你可以看到所有的提交记录
- 每条记录包含:提交说明、修改时间、修改的文件
提交代码(Commit)
在 Alma 中提交代码很简单:
提示词示例:
请帮我提交当前的代码修改,提交说明:完成数据收集功能或者更详细一点:
请帮我:
1. 查看当前有哪些文件被修改了
2. 将修改的文件添加到暂存区
3. 提交代码,提交说明:添加教师招聘信息收集功能回退代码(Checkout)
如果你发现某次提交有问题,可以让 Alma 帮你回退:
提示词示例:
我发现上次的代码有问题,请帮我回退到上一次提交的状态或者回退到更早的版本:
请帮我查看提交历史,然后回退到"完成基础功能"那次提交的状态使用 AI 操作 Git 的优势
你可能在想:为什么不自己学 Git 命令,而是让 AI 帮忙?
| 自己学 Git | 让 AI 帮忙 |
|---|---|
| 需要记住很多命令,容易忘 | 不需要记命令,直接说需求 |
| 命令输错了可能造成严重后果 | AI 会检查命令,避免错误 |
| 需要理解 Git 的复杂概念 | 用自然语言表达,简单易懂 |
| 需要手动处理冲突 | AI 可以帮你自动处理 |
总结:让 AI 帮你操作 Git,就像有个经验丰富的程序员助手在旁边,你只需要告诉它你想做什么,它就会帮你完成。
实际操作示例
示例 1:初始化 Git 仓库
提示词:
请帮我在当前目录初始化 Git 仓库Alma 会做什么:
- 检查当前目录是否已经有 Git 仓库
- 如果没有,执行
git init命令 - 告诉你初始化成功
示例 2:提交第一次代码
提示词:
请帮我提交代码,提交说明:初始化项目Alma 会做什么:
- 查看当前有哪些文件
- 将文件添加到暂存区
- 提交代码,并显示提交信息
示例 3:修改代码后提交
提示词:
我刚才修改了一些文件,请帮我提交,提交说明:添加数据收集功能Alma 会做什么:
- 查看哪些文件被修改了
- 显示修改的内容摘要
- 提交修改,并记录提交说明
示例 4:查看提交历史
提示词:
请帮我查看最近的提交历史Alma 会做什么:
- 显示最近的提交列表
- 每条记录包含:提交 ID、说明、时间、作者
示例 5:回退到之前的版本
提示词:
我发现当前的代码有问题,请帮我回退到上一次提交Alma 会做什么:
- 确认你要回退到哪个版本
- 执行回退操作
- 告诉你回退成功,当前代码已经回到之前的状态
常见问题
问题 1:提交时提示"没有可提交的内容"
原因:你已经提交过这些文件了,或者文件没有修改
解决方法:
请帮我查看当前有哪些文件,检查是否有修改未提交问题 2:回退后代码丢失了
原因:你可能回退得太早,误删了重要代码
解决方法:
请帮我查看提交历史,找到包含之前代码的提交,然后恢复提示:回退操作之前,最好让 Alma 显示提交历史,确认要回退到哪个版本
问题 3:修改冲突怎么办
原因:多个人同时修改同一个文件,或者你在不同地方修改了同一个文件
解决方法:
请帮我查看冲突的文件,并尝试自动解决冲突如果自动解决失败:
请帮我显示冲突的具体位置,我会手动修改总结
Git 是一个强大的代码版本管理工具,就像游戏的存档功能。你不需要精通 Git 命令,只需要理解基本概念:
- Commit:存档,记录修改
- Checkout:读档,回到之前的版本
- Commit History:存档列表,查看所有修改记录
在 Alma 中,你可以用自然语言让 AI 帮你操作 Git,就像有个程序员助手在旁边。你只需要告诉它你想做什么,它就会帮你完成。
记住:让 AI 帮你操作 Git 是很不错的选择哦,简单、安全、高效!
课程总结
学到的技能
- 向 Alma 表达自动化需求:用自然语言告诉 Alma 你想做什么
- 设计输出格式:明确数据结构和文档形式
- 应对问题:预判可能出现的情况,准备相应的提示词
- 验证结果:检查输出文件是否符合预期
实践成果
- 能够使用 Alma 的 agent-browser 技能收集网页信息
- 理解如何用自然语言引导 AI 代理完成任务
- 学会了数据收集任务的一般流程
下一步学习
- 课程 5:教学内容整合制作
- 探索更高级的数据收集技巧
- 学习数据分析和可视化
重要提示
核心原则:Alma 是一个 AI 代理,你只需要:
- 明确告诉它你的目标
- 设计好输出格式
- 用清晰的自然语言描述需求
- 准备好应对问题的策略
不要陷入技术细节,专注于"如何说"而不是"如何做"。
通过本课学习,你已经掌握了使用 AI 代理进行自动化数据收集的能力!