一、案例背景与采集目标
每到小长假,最难的一件事就是做攻略:去哪个城市、哪些景点值得去、门票多少、要留多久、周一会不会闭馆——信息散在几十篇攻略里,看完还是拿不准。这个案例要做的事,是把旅游平台的景点与点评整理成一张行程候选清单,让排行程从刷半天手机变成按条件筛选。和前面求职采集那一案一样,这一篇的落点也是帮学生做决定,只是把「能投哪些岗位」换成了「该去哪些景点」。
示范站点有两个:马蜂窝,网址 https://www.mafengwo.cn/,它的景点页与攻略区信息最全;以及携程旅游攻略,网址 https://you.ctrip.com/sight/guangzhou152.html,它的景点详情页字段规整、门票与开放时间写得清楚。两个站点的景点字段高度相似,正好合到一张表里。
1.1 为什么挑这两个站点
- 数据贴近真实需求。门票、开放时间、建议游玩时长、点评数,都是排行程时必须知道的;
- 字段规整但口径不一。同样是评分,携程中国站是 5 分制、携程国际版 Trip.com 却用 10 分制;门票有区间价也有套票,正好练口径统一;
- 它代表了一大类站点。去哪儿、飞猪、穷游网、大众点评的景点页结构都相似,学一套能迁移到一片;
- 重点在清洗而不是抓。把两家的评分、门票统一成同一口径,比多抓几百条更能体现数据能力。
1.2 这个案例要拿到什么
- 一个城市的景点清单,一个景点一行;
- 景点名称、所在城市、景点类型;
- 门票价格、开放时间、建议游玩时长;
- 评分(统一成 5 分制)、点评数、热度排名;
- 最佳季节、交通提示;
- 关联的攻略标题、作者、发布时间与详情链接;
- 最后按城市 + 建议游玩时长 + 开放时间 + 门票,筛出一份小长假候选清单。
1.3 三个必须先想清楚的口径
| 要点 | 页面上的样子 | 正确处理 |
|---|---|---|
| 评分制式 | 携程中国站 4.6/5,携程国际版 Trip.com 9.2/10 | 先确认平台与站点,再统一换算成 5 分制(10 分制 ÷ 2),另存一列标原制式 |
| 门票价格 | 「成人票 60 元」「套票 120 元」 | 拆成门票下限、门票上限两列,套票或附加说明写进备注 |
| 开放时间 | 「09:00–17:00(周一闭馆)」 | 保留开放时间,另设周一闭馆标记列,不要把条件当常态 |
1.4 这个案例的难点在哪
| 难点 | 具体表现 | 对策 |
|---|---|---|
| 评分口径不同 | 携程中国站 5 分制、Trip.com 10 分制 | 统一到 5 分制,另存原制式与原始分 |
| 门票有区间与套票 | 「60 元」「60–120 元」「套票 120 元」 | 拆成下限与上限,套票写入备注 |
| 开放时间带条件 | 「周一闭馆」「淡季 09:00 开」 | 分列记录,条件用标记列承载 |
| 页面动态加载 | 点评要滚动才出来 | 驱动浏览器滚动加载,或改用公开列表接口 |
| 点评要分页 | 一页 10 到 20 条 | 按页码循环,去重后合并 |
| 时长是口语 | 「半天」「2–3 小时」 | 换算成分钟并保留原文 |
目标站点与交付产物
下表是本篇用到的真实站点。绿色是课堂可稳定复现的示范站点;橙色是延伸站点,多数有登录墙或风控,课堂上只讲结构、原理与合规边界,不教绕过。
| 项目 | 内容 |
|---|---|
| 示范站点 | 携程 · 广州旅游攻略 https://you.ctrip.com/sight/guangzhou152.html 攻略与景点点评同体系;页面动态加载、点评需分页,门票常有区间价与套票,评分有 5 分制与 10 分制两种口径 |
| 延伸站点 |
|
| 交付产物 |
|
| 难度 | ★★☆ 中 |
| 合规提示 | 只采公开的景点与攻略元数据;点评属用户生成内容,只做统计不逐条转载;不采集作者个人隐私;门票与开放时间以景区官方为准,采集结果仅作参考。 |
二、数据源与字段设计
目标站点:马蜂窝 https://www.mafengwo.cn/ 与 携程旅游攻略 https://you.ctrip.com/sight/guangzhou152.html。
| 项目 | 内容 |
|---|---|
站点名称 | 马蜂窝(景点与攻略)+ 携程旅游攻略(景点详情) |
入口网址 | https://www.mafengwo.cn/ | https://you.ctrip.com/sight/guangzhou152.html |
页面形态与接口 | 景点详情页与点评列表多为动态加载,需驱动浏览器滚动加载后再取;浏览景点与门票无需登录,写点评需登录 |
实际规模 | 一个热门城市可有上百个景点,每个景点点评从几十到上万条不等 |
延伸站点 | 同类站点:去哪儿 https://www.qunar.com/、飞猪 https://www.fliggy.com/、穷游网 https://www.qyer.com/、大众点评(多数有风控,只作对照与合规讨论);另一套评分制式的对照源:携程国际版 Trip.com https://www.trip.com/(同一批景点,评分用 10 分制,可用于练制式换算) |
2.1 完整字段表(21 个)
下表就是本案例的验收标准。重点看「评分原制式 / 评分统一5分制」与「门票下限 / 上限」这几列,它们是两家站点能合到一张表的关键。
| 字段名 | 字段含义 | 示例值 | 口径与备注 |
|---|---|---|---|
景点名称 | 景点官方名称 | 西湖 | 照录原文,不改别名 |
所在城市 | 景点所在城市 | 杭州 | 统一到城市名,不含省份 |
景点类型 | 自然 / 人文 / 主题乐园 等 | 自然 | 归并到有限几类便于筛选 |
门票价格原文 | 页面上的门票写法 | 成人票 60 元 | 原样保留,作为清洗依据 |
门票下限 | 门票最低价(元) | 60 | 「60」→ 下限 60;免费景点记 0 并备注 |
门票上限 | 门票最高价(元) | 120 | 含套票时取套票价 |
是否套票 | 是否有多景点套票 | 是 | 是 / 否 |
开放时间 | 每日开放时段 | 09:00–17:00 | 统一成 24 小时制 |
是否周一闭馆 | 周一是否闭馆 | 是 | 从开放时间说明判断,是 / 否 / 未知 |
建议游玩时长 | 页面给的时长原文 | 半天 | 照录原文 |
时长分钟 | 换算后的分钟数 | 240 | 「半天」按 240 分钟,供排序筛选 |
评分原制式 | 站点评分满分 | 5 分制 / 10 分制 | 记录原始口径 |
评分统一5分制 | 统一口径后的评分 | 4.5 | 10 分制 ÷ 2;保留一位小数 |
点评数 | 点评总条数 | 12000 | 「1.2万」还原成整数 |
热度排名 | 站点的热门排名 | 3 | 没有排名就留空 |
最佳季节 | 适合游玩的季节 | 春秋 | 照录页面说法 |
交通提示 | 到达方式提示 | 地铁 1 号线龙翔桥站 | 截取前 100 字 |
攻略标题 | 相关攻略的标题 | 杭州三日游怎么安排 | 只取标题,不取攻略正文 |
攻略作者 | 攻略作者昵称 | 旅行的某某 | 只记公开昵称,不记其他个人信息 |
发布时间 | 攻略发布时间 | 2026-08-20 | 统一成 YYYY-MM-DD |
详情链接 | 景点详情页地址 | https://you.ctrip.com/sight/guangzhou152.html | 用于溯源,不重复下载图片等版权内容 |
2.2 三个口径写死,后面少踩坑
- 评分必须统一到 5 分制。同一家平台内部,评分制式就不统一:携程中国站(
you.ctrip.com)是 5 分制,而携程国际版 Trip.com 自 2025 年 4 月起改用 10 分制展示(官方换算规则:原始分 × 2,向下取整保留一位小数)。不换算直接放一列排序必然出错——把 10 分制除以 2,并单独保留「评分原制式」列以便追溯。 - 门票要拆下限与上限。「60 元」记下限 60;「60–120 元」「套票 120 元」记下限 60、上限 120,套票信息写进备注;免费景点记 0 而不是空,因为「免费」是一个明确的价格。
- 开放时间的条件要单独成列。「周一闭馆」不是全天开放,把它放进标记列,排行程时才不会把闭馆日排进去。
课程思政|数据安全与法治素养 · 攻略可以看,正文不能搬
景点信息与门票是公开的,采集没有问题;但攻略正文、点评长文、配图属于作者的创作,受著作权保护。我们只取标题、出处与少量元数据,要引用就注明来源,绝不整篇搬运。尊重他人的劳动,是使用公开数据最基本的礼貌。
AI 助手小贴士|两家站点的评分口径不同,先让 AI 把原始评分与满分都列出来,你确认换算公式后再统一,避免一开始就换算错。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请把马蜂窝与携程的景点评分连同它们的满分一起列出来(一个景点一行),先不要换算,我来确认统一到 5 分制的公式。
三、零代码操作步骤
工具与技能|先看清三个角色,再动手
本篇全程零代码:你把要求说清楚,AI 去执行,你负责验收。三个角色分工如下——浏览器技能指的是腾讯开源的 BrowserSkill,它能让 AI 直接操作你电脑上真实的浏览器(可复用已经登录的状态),自己开一个独立窗口干活,不打扰你正在看的网页;遇到验证码、登录或确认弹窗,它会停下来交给你本人处理。
| 角色 | 负责什么 | 在本案例里具体做什么 |
|---|---|---|
| 你 | 确认字段清单、验收结果、清洗与合规把关 | 盯字段清单、核对结果、处理异常(如验证码) |
| WorkBuddy | 接中文指令:探字段 → 批量采 → 清洗 → 导出交付物 | 拆解本篇的采集任务并跑完全量、产出交付物 |
| 浏览器技能 BrowserSkill | 以真实浏览器打开页面:跑脚本渲染、滚动 / 翻页 / 点开详情、截图留证;可复用本机浏览器已登录状态,遇到验证码或登录弹窗会停下来交给你处理 | 打开攻略景点列表,确认评分满分口径与门票字段 |
五步操作主线(全课程统一,每一篇都按这个顺序推进):
- 定目标与字段:先看本篇第二节的字段表,把「要哪几列、每列什么口径、要多少条」说清楚——字段清单就是验收标准,说不清就会拿回一张字段乱七八糟的表。
- 现场踩点(浏览器技能 BrowserSkill):打开
https://you.ctrip.com/sight/guangzhou152.html,确认评分是多少分制、门票字段长什么样。 - 小样试采(WorkBuddy):先只采一个城市的景点列表。
- 核对与清洗:① 原始评分与满分口径写清了没有(5 分制与 10 分制别混);② 门票有没有拆成下限与上限;③ 点评是不是按页码循环、去重后合并。
- 导出与归档:导出交付物(数据明细表 / 可筛选明细页 / 数据看板 / 可复用的技能包),文件名带上采集日期,并写清数据来源、采集时间与已知局限。
用浏览器技能 BrowserSkill 打开 https://you.ctrip.com/sight/guangzhou152.html(携程 · 广州旅游攻略),把这一页每条记录能采到的字段名和示例值列出来,先不要采集。下面是在 WorkBuddy 里完成本案例的完整流程。全程不需要你写一行代码,但每一步都要动手核对。
- 新建对话,粘贴下一节的采集提示词,先只采一个城市(如杭州)的景点列表。
- 先看评分口径。让 AI 把原始评分和满分一起列出来,确认换算公式后再统一。
- 拆分门票。说「把门票拆成下限和上限两列,套票信息写进备注,免费景点记 0」。
- 处理开放时间。说「保留开放时间,另加一列标记周一是否闭馆」。
- 补采点评。说「每页点评都要采,按页码循环,去重后合并,最后统计每个景点的点评数」。
- 关联攻略。说「把每个景点相关的攻略标题、作者、发布时间也带上,只取标题不取正文」。
- 算时长。说「新增一列时长分钟,把『半天』换算成 240 分钟」。
- 排候选清单。说「按城市分组,筛出建议时长在半天内、且周一不闭馆的景点」。
- 导出并归档。说「导出为 Excel,文件名
travel_hangzhou_20261008.xlsx」。
四、提示词模板与追问技巧
下面这段可以直接复制。注意三个要点:网址写全、字段按编号列清、把评分与门票的口径交代死。
请帮我采集旅游平台上的景点与点评信息,整理成一张景点候选清单。
【目标站点】
1. 马蜂窝 https://www.mafengwo.cn/
景点页与攻略区,评分是 5 分制。
2. 携程旅游攻略 https://you.ctrip.com/
景点详情页,门票与开放时间写得清楚,评分也是 5 分制。
3. 携程国际版 Trip.com https://www.trip.com/
同一批景点,但评分用 10 分制,换算时按「÷ 2、保留一位小数」处理。
【采集范围】先只采杭州的景点列表,我确认后再采更多城市。
【需要字段】按这个顺序:
1. 景点名称
2. 所在城市
3. 景点类型(自然 / 人文 / 主题乐园 等)
4. 门票价格原文(照录)
5. 门票下限、门票上限(元,免费记 0)
6. 是否套票(是 / 否)
7. 开放时间(统一成 24 小时制)
8. 是否周一闭馆(是 / 否 / 未知)
9. 建议游玩时长(原文)
10. 时长分钟(换算成整数分钟)
11. 评分原制式(5 分制 / 10 分制)
12. 评分统一5分制(10 分制 ÷ 2,保留一位小数)
13. 点评数(「1.2万」还原成整数)
14. 热度排名
15. 最佳季节
16. 交通提示
17. 攻略标题(只取标题)
18. 攻略作者(只取公开昵称)
19. 发布时间(统一成 YYYY-MM-DD)
20. 详情链接
【处理口径】
- 评分统一到 5 分制,另存原制式;不要把两种制式的分数直接放一列排序
- 门票拆下限与上限;免费景点记 0;套票信息写进备注
- 开放时间保留原文,另设「周一闭馆」标记列
【合规要求】
- 只采公开展示的景点与门票元数据
- 攻略正文与点评长文受著作权保护,只取标题与出处,不整篇转载
- 点评里若含他人姓名、电话、位置等个人信息,一律不采
- 控制频率,每次请求间隔至少 1 秒
- 结果导出为 travel_hangzhou_20261008.xlsx
4.1 三条常用追问指令
追问一(评分口径没统一):
同一处景点,携程中国站(you.ctrip.com)打 4.6 分(5 分制),
携程国际版 Trip.com 却是 9.2 分(10 分制),被直接放在一列里排序了,结果不对。
请把 10 分制的评分除以 2 统一成 5 分制,并单独保留「评分原制式」列。
追问二(门票区间与套票):
门票写「60–120 元」和「套票 120 元」的,被当成一个数记了。
请拆成门票下限和上限两列,把套票说明写进备注,免费景点记 0 并备注「免费」。
追问三(周一闭馆):
开放时间里有「周一闭馆」,请单独加一列「是否周一闭馆」标记,
排行程时我要能直接把周一的安排避开这些景点。
AI 助手小贴士|点评分页很容易漏页或多采,让 AI 先报每个景点「应有页数 / 实采页数 / 去重后条数」,一眼就能发现哪里缺了。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请按景点分组报告:每个景点点评应有几页、实际采了几页、去重后多少条,把不一致的景点列出来。
五、结果核对、清洗与保存
整理后的结果样例(示例数据,字段形态与真实一致;评分已统一为 5 分制):
| 景点名称 | 所在城市 | 门票下限 | 门票上限 | 开放时间 | 周一闭馆 | 建议时长 | 评分 | 点评数 | 热度排名 |
|---|---|---|---|---|---|---|---|---|---|
| 西湖 | 杭州 | 0 | 0 | 全天 | 否 | 半天 | 4.7 | 12000 | 1 |
| 故宫博物院 | 北京 | 60 | 60 | 08:30–17:00 | 是 | 3 小时 | 4.8 | 21000 | 2 |
| 上海迪士尼 | 上海 | 475 | 799 | 08:30–20:30 | 否 | 1 天 | 4.6 | 35000 | 3 |
| 秦始皇兵马俑 | 西安 | 120 | 150 | 08:30–18:00 | 否 | 半天 | 4.7 | 18000 | 5 |
5.1 五步清洗,一句话一条
① 评分统一:
10 分制的评分除以 2,统一成 5 分制并保留一位小数;另存「评分原制式」列。
② 门票拆分:
「60 元」→ 下限 60;「60–120 元」→ 下限 60、上限 120;
免费景点记 0 并备注「免费」;套票信息写进备注。
③ 开放时间规范化:
统一成 24 小时制;另设「是否周一闭馆」标记列。
④ 时长换算:
「半天」→ 240 分钟、「2–3 小时」→ 150 分钟,保留原文另存一列。
⑤ 去重与合并:
两家站点按「景点名称 + 所在城市」去重,保留信息更全的一条,再导出。
5.2 保存与归档
travel_hangzhou_20261008.xlsx 景点清单(原始字段)
travel_hangzhou_20261008_clean.xlsx 清洗版(评分统一 + 门票拆分 + 时长换算)
travel_hangzhou_plan.xlsx 小长假候选清单(按城市与时长筛选后)
travel_hangzhou_log.txt 日志:来源、城市、景点数、点评页数、去重条数
课程思政|工匠精神与严谨求实 · 一个换算,决定的是一份行程
把 10 分制的 9.0 直接和 5 分制的 4.5 排序,结果一定是错的;把门票套票价当成单人票,预算就会算歪。评分口径、门票区间、闭馆条件——每一项都要对齐,排出来的行程才靠得住。数据工作里的严谨,最终都落在别人敢不敢按你的清单出门。
AI 助手小贴士|核对景点清单时,让它按城市分组统计景点数与点评数,哪个城市明显偏少,就说明那一批漏采了。
打开 WorkBuddy 或任意 AI 对话工具,试试这样问:请按城市分组统计景点数量和点评总条数,把明显偏少的城市单独列出来,我好判断哪里漏采。
六、常见问题与合规红线
6.1 这个站点上最容易踩的五个坑
| 现象 | 原因 | 怎么处理 |
|---|---|---|
| 评分排序明显不对 | 5 分制与 10 分制混在一列 | 统一换算成 5 分制,另存原制式 |
| 预算算歪 | 把套票价当成单人票 | 门票拆下限与上限,套票写入备注 |
| 行程排到了闭馆日 | 开放时间的周一闭馆没单列 | 加「是否周一闭馆」标记列,筛选时避开 |
| 点评只采到第一页 | 没做分页循环 | 按页码循环采集,去重后合并并核对条数 |
| 点评抓下来是空的 | 页面动态加载,直接打开没渲染 | 驱动浏览器滚动加载,或改用公开列表接口 |
6.2 三条合规红线(每个案例都要过一遍)
- 只采公开元数据。景点名称、门票、开放时间、评分这些公开展示的信息可以采;需要登录才能看的内容不采。
- 尊重著作权。攻略正文、点评长文、配图属于作者创作,只取标题与出处,绝不整篇转载。
- 不采个人信息。点评里出现的姓名、电话、位置等信息不采、不存、不传;控制频率。
课程思政|诚信与职业操守 · 点评是别人的真实体验,不是可以刷的数字
点评数据的价值,来自每一条都是真实游客写下的体验。刷分、刷评、伪造推荐,看起来只是几个数字,损害的却是所有依赖它做决定的人。做数据的人更该明白:一旦开始造假,数据就一文不值;诚实,才是数据能被信任的唯一理由。
七、随堂自测(10 题)
点击选项即可判分,答错的题会立刻显示解析。
1同一处景点,携程中国站评分 4.5(满分 5 分),携程国际版 Trip.com 是 9.0(满分 10 分),要一起比较应怎么处理?
- A. 直接比数字,9.0 更大说明国际版那个值得去
- B. 统一换算成 5 分制(9.0 ÷ 2 = 4.5)再比较
- C. 把 4.5 乘以 2 变成 9.0 再比
- D. 分数没有可比性,直接丢掉
2景点门票写「成人票 60 元,套票 120 元」,正确的记录方式是?
- A. 分别记录:门票下限 60、上限 120,并把套票写进备注
- B. 只记 60
- C. 只记 120
- D. 把两个数相加记成 180
3开放时间写「09:00–17:00(周一闭馆)」,正确的做法是?
- A. 把开放时间整列删掉
- B. 只记 09:00–17:00,闭馆信息丢掉
- C. 保留开放时间,并另设「是否周一闭馆」标记列
- D. 把「周一闭馆」当成每天都闭馆
4把「建议游玩时长」写成「半天」这类说法,正确的处理是?
- A. 直接删掉
- B. 换算成分钟(半天约 240 分钟)并保留原文
- C. 当成 0
- D. 随便填一个数
5抓取旅游攻略正文时,下面哪种做法越界了?
- A. 只取攻略标题与发布时间的元数据
- B. 记录攻略链接用于溯源
- C. 统计某城市的攻略数量
- D. 把整篇攻略正文原文转载到自己的网站上
6某点评站评分是 10 分制,另一站是 5 分制,混在一列里直接排序会怎样?
- A. 没有问题
- B. 会产生错误的排序,必须先统一口径
- C. 数字越大越准
- D. 会自动变得一致
7景点页面是动态加载的,直接打开看不到点评,正确做法是?
- A. 驱动浏览器滚动加载后再取,或改用站点公开的列表接口
- B. 直接放弃这个站点
- C. 把空白当成没有点评
- D. 手动复制粘贴一条即可
8「点评数」页面显示「1.2万条」,正确记录是?
- A. 记成 1.2
- B. 记成 12
- C. 记成 1200
- D. 还原成整数 12000
9给小长假排行程,下面最有用的一组字段是?
- A. 景点名称与详情链接
- B. 攻略作者与发布时间
- C. 所在城市 + 建议游玩时长 + 开放时间 + 门票价格
- D. 热度排名与点评数
10采集旅游平台数据时,下面哪种做法是合规的?
- A. 绕过登录墙去抓付费点评
- B. 高频请求把全站点评一次抓完
- C. 采集并公开其他用户的头像、昵称、位置等个人信息
- D. 只采公开展示的景点与门票元数据,控制频率并注明来源