本页把 36 个案例逐一落到真实网站上,每个案例给出:示范站点与网址、延伸站点、采集字段与口径、可完成的分析项目、采集与分析的意义、应交付的成果产物、以及必须交代的合规边界。点击每个案例的编号或标题,可直接打开对应的案例页。
课程走零代码路线:你把「采集目标、字段清单、输出格式」说清楚,WorkBuddy 负责执行;你负责核对、清洗与合规把关。每个案例的固定流程是:明确目标 → 确认数据源与字段 → 分步下指令 → 核对数量与字段 → 清洗与去重 → 存储与看板 → 写清口径与局限,学生按同一套流程即可复现。
模块一 新闻信息与社交媒体采集 |共 9 个案例
https://www.gcut.edu.cn/xyxw_183/list.htm
webplus 站群,纯静态分页,16 条/页,共 955 页约 1.5 万条;无反爬
- 人民网 · 首页头条 http://www.people.com.cn/GB/59476/index.html
静态列表,结构规整 - 新华网 · 时政 http://www.news.cn/politics/
静态列表 - 中国新闻网 · 滚动 https://www.chinanews.com.cn/scroll-news/news1.html
静态滚动列表
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | no | 采集后统一重排,保证可追溯 |
| 标题 | title | 取自列表页<a title> |
| 详情页地址 | url | 相对地址必须补成绝对地址 |
| 链接类型 | link_type | 区分本校站点稿与跳转微信公众号的转发稿 |
| 列表页日期 | list_date | 归档日;类名news-list-…-time |
| 发布时间 | pub_time | article-time |
| 发布日 | pub_date | 取发布时间,缺失时回退列表页日期 |
| 发布年份 | pub_year | 年度统计用 |
| 发布月份 | pub_month | 月度统计用 |
| 年月 | pub_ym | 做透视表用 |
| 星期 | weekday | 观察校园新闻的发布节律 |
| 浏览量 | views | 走计数接口取值详情页上的10是占位符不可信 |
| 是否有署名 | has_byline | 依据是否匹配到「本网讯(记者…)」 |
| 署名原文 | byline_raw | 留着供人工复核解析是否正确 |
| 记者姓名 | reporters | 多人用「、」连接 |
| 署名人数 | reporter_count | 多人合作稿计为2人及以上 |
| 首位署名 | first_reporter | 做发稿量排名时以首位为准 |
| 标题字数 | title_len | 过短的标题多为通知类简讯 |
| 日期差 | date_diff | 用来验证两个日期口径的差异 |
| 采集日期 | fetch_date | 审计字段,便于多次采集合并 |
- 校园新闻月度发布量统计:看哪几个月是宣传高峰(开学、招生、校庆、评估)
- 标题词频与关键词云:提炼学校年度重点工作(如「十五五」「评估」「产教融合」)
- 记者发稿量排名:署名解析后统计各记者与各学院的发稿量 Top100
- 浏览量 Top100 热门稿件 + 站内稿 / 微信跳转稿占比分析
校园新闻是学校自己的公开宣传数据,采集零门槛、零伦理争议,最适合作为整门课的第一个案例:学生第一次就把「列表页 → 详情页 → 字段表 → 导出」这条主线走通。本案例已真实跑完全量:955 个列表页、15,268 条明细(覆盖 2006–2026 年),其中署名 7,053 条、共 2,501 位署名者。
- 数据明细.xlsx(8 Sheet:说明/数据明细/按年统计/按月统计/记者发稿量/浏览Top100/字段字典/数据质量)
- 数据明细.html(可筛选/排序/分页/导出的单页)
- 数据看板.html(发布量趋势 + 年度对比 + 记者发稿量 + 标题关键词)
- 技能压缩包(换一所 webplus 学校的网址即可复用)
https://www.gcut.edu.cn/2026/0930/c183a214619/page.htm
两级抓取的第二级;正文在 portletmode=simpleArticleContent 容器内,浏览量走站内计数接口
- 澎湃新闻 · 时事频道 https://www.thepaper.cn/channel_25950
正文长、图文混排,适合练正文抽取 - 36氪 · 科技资讯 https://36kr.com/information/technology
前端渲染较重,可作对比
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 标题 | title | 用于核对没采错页 |
| 发布时间 | pub_time | 精确到日;页面若给到时分秒就照录 |
| 正文 | content | 只取正文容器内的内容,剔除推荐位与关注块 |
| 浏览量 | views | 来自计数接口,不是页面上的10 |
| 署名原文 | byline_raw | 原样保留,便于复核 |
| 记者姓名 | reporters | 多人用「、」连接 |
| 署名人数 | reporter_count | 多人合作稿计为2人及以上 |
| 配图地址 | images | 注意区分懒加载占位图 |
| 正文字数 | word_count | 去标点,用于筛掉通知类短稿 |
| 所属栏目 | - | 取面包屑「新闻中心」下的二级栏目 |
| 作者单位 | - | 照录「单位:」一行原文,页面没写就留空 |
| 责任编辑 | - | 取文末「编辑:」之后的人名,与记者分开统计 |
| 配图数量 | - | 由配图地址列计数得出,懒加载占位图不计入 |
| 数据批次 | - | 不是页面字段,记录采集日期与规则版本 |
- 正文语料库建设:把 1.5 万篇校园新闻落成纯文本,供后续词频与主题建模使用
- 「本网讯(记者…)」署名提取:统计各学院/各部门的发稿量排名
- 配图数量与正文长度关系分析:哪些题材的报道更「重」
列表页只给入口,真正的信息在详情页。这一案让学生理解「两级抓取」这个贯穿全课的骨架,并第一次面对真实世界的脏数据:页面占位符、相对地址、懒加载占位图、转发稿署名格式不统一。
- 数据明细.xlsx(含正文长度与署名列)
- 数据明细.html(正文可折叠展开)
- 正文语料包(每篇一个 .txt,供词频分析)+ 署名解析失败清单
- 技能压缩包(webplus 详情页 + 署名解析,含全半角标点处理规则)
https://www.gcut.edu.cn/tzgg/list.htm
webplus 站群的通知公告栏目,纯静态分页、无反爬;公告是「列表页 → 详情页 → 附件」三级结构,重点在附件的下载与归档
- 教育部 · 信息公开专栏 http://www.moe.gov.cn/jyb_xxgk/
部委公告与规范性文件,附件以 PDF 为主 - 广东省教育厅 · 公示公告 http://edu.gd.gov.cn/zwgknew/gsgg/
省级公告,结构相近,可换站复用 - 中国政府采购网 · 采购公告 http://www.ccgp.gov.cn/cggg/
招标采购公告,附件多、常含表格
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | no | 采集后统一重排,保证可追溯 |
| 标题 | title | 取自列表项<a title=…> |
| 所属栏目 | category | 多栏目合并时用来标明来源 |
| 详情页地址 | detail_url | 补全绝对地址;同时是去重唯一键 |
| 发布日期 | pub_date | 与详情页article-time核对 |
| 发文单位 | issuer | 从正文末尾的落款段落解析 |
| 文号 | doc_no | 只在转发上级文件时出现,格式不统一 |
| 附件数量 | attach_count | 没有附件的记0(这类公告正文本身就是全文) |
| 附件文件名 | attach_name | 多个用「,」分隔 |
| 附件类型 | attach_type | 取值PDF/DOC/XLS/其他便于分类归档 |
| 附件大小 | attach_size | 页面不提供 |
| 附件下载地址 | attach_url | 补全域名;多个用「;」分隔 |
| 是否含表格 | has_table | 有xls/xlsx附件 |
| 正文字数 | - | 用来区分「长文通知」与「一句话+附件」的公示 |
| 采集日期 | fetch_date | 审计字段,便于多次采集合并 |
| 公告序号 | - | 与主表「序号」一一对应,可回查公告 |
| 公告标题 | - | 方便在清单表里独立查看,不必回主表 |
| 附件序号 | - | 一条公告有多个附件时从1开始编号 |
| 附件原始文件名 | - | 来自sudyfile-attr的title |
| 附件类型 | attach_type | 由扩展名或页面的图标判断 |
| 文件扩展名 | - | 统一小写,便于按类型统计 |
| 附件下载地址 | attach_url | 补全域名后的完整地址 |
| 文件大小(字节) | - | 下载得到,页面不给 |
| 本地保存路径 | - | 按「公告年月/公告标题/原始文件名」组织 |
| 下载状态 | - | 失败的记录原因,方便单独重试 |
- 公告附件资料库:把某栏目近 3 年的公告按「年月_文号_原始文件名」归档成本地 PDF/DOC 库
- 公告发布节律:统计各栏目按月/按星期的发布量,看学校的行政工作节奏
- 附件类型分布:哪类栏目最爱挂表格(XLS)、哪类爱挂正式文件(PDF)
- 文号解析:从文号里抽出年份与序号,做发文量年度趋势
通知公告是校园里信息密度最高、又最容易被漏掉的一类内容——评奖、招标、学籍、考试通知往往都挂在附件里,正文只有一句话。这一案的核心是「附件下载与归档」,与案例 01(新闻 + 正文)互补:01 采的是新闻正文,03 采的是公告与文件。
- 数据明细.xlsx(公告台账 Sheet + 附件清单 Sheet + 字段字典)
- 附件归档目录(按「年月_文号_原始文件名」命名,附清单可核对)
- 数据看板.html(各栏目发布量 + 附件类型占比 + 发布日历)
- 技能压缩包(公告采集 + 附件三级下载 + 原始文件名保留规则)
https://www.chinanews.com.cn/rss/
RSS/Atom 是标准 XML 订阅格式,字段统一,天然绕开页面结构差异
- 36氪 https://36kr.com/feed
商业媒体 RSS - 少数派 https://sspai.com/feed
科技媒体 RSS - 人民网 各频道 RSS http://www.people.com.cn/rss/politics.xml
按频道分源 - 今日头条 https://www.toutiao.com/
首页顶栏切换「热点」等频道;聚合推荐流(非 RSS),可对照「订阅源 vs 推荐流」的差别
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 来源媒体 | - | 取订阅源的title,整源取一次 |
| 栏目 | - | 对应RSS的category,一处可能有多个 |
| 标题 | title | 对应title;不改写、不截断 |
| 链接 | link | 对应link |
| 条目编号 | - | 对应RSS的guid或Atom的id |
| 发布时间原文 | - | pubDate/updated,RFC822 |
| 发布时间 | pub_date | 由上一列换算,精确到分,便于排序与跨天比较 |
| 摘要 | description | 对应description/summary |
| 作者 | author | 对应author或dc:creator |
| 源格式 | - | 由根标签判定,决定用哪套映射规则 |
| 内容指纹 | fingerprint | 用于发现「同稿多源」:标题写法不同但指纹相同 |
| 采集时间 | fetched_at | 增量更新靠它判断「哪些是上次之后新增的」 |
| 数据批次 | - | 与采集时间一一对应,多次采集对齐用 |
- 多源资讯聚合器:把 5~8 个源合并成一张统一字段的资讯流
- 跨源去重实验:链接去重能去掉多少?再加标题指纹能再发现多少重复稿?
- 增量更新:只保留上一次采集时间之后的新条目,做成每天自动跑的日报
RSS 是「用标准格式代替逆向解析」的经典思路——不跟网站页面结构较劲,直接订阅官方给的机读格式。同时去重是数据采集里第一个真正有工程含量的课题:判重口径不同,结果差很多。
- 数据明细.xlsx(含 fingerprint 与是否重复列)
- 数据明细.html(按来源筛选、按时间去重视图)
- 数据看板.html(各源条数占比 + 去重前后对比)
- 技能压缩包(RSS 多源聚合器,改一行配置即可换源)
https://s.weibo.com/top/summary
榜单结构简单(排名/话题/热度),但需要 Cookie,教学上以「结构解析 + 热度值清洗」为主
- 知乎热榜 https://www.zhihu.com/hot
接口返回 JSON,字段干净 - 哔哩哔哩(B 站)全站排行 https://www.bilibili.com/v/popular/rank/all
有公开排行榜接口 - 抖音热榜 https://www.douyin.com/hot
动态渲染,参考案例 34 的做法 - 百度热搜 https://top.baidu.com/board?tab=realtime
静态榜单页,较好复现
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 采集时间 | snapshot_at | 按小时存,是时间维度的关键,必须每期都记 |
| 排名 | rank | 从1开始;置顶与推广条目不占正式排名 |
| 话题 | topic | 保持原文,含书名号、标点,不要截断 |
| 话题链接 | - | 绝对地址含URL编码用于回溯只记录不点开 |
| 热度值原文 | heat_raw | 微博热搜多为纯数字 |
| 热度值 | - | 统一成整数,万=10000 |
| 标签 | tag | 常见「热」「新」「沸」「爆」;没有就留空 |
| 榜单类型 | - | 同一平台可能有多个榜,须写清是哪一张 |
| 榜单位次变化 | - | 由两期数据比对得到,不是页面上直接给的 |
| 是否推广位 | - | 微博热搜顶部含推广条目,必须标注或剔除 |
| 话题领域 | - | 由关键词规则或人工打标,用于分领域统计 |
| 快照批次 | snapshot_id | 与采集时间一一对应,多期对比时用来区分 |
- 热搜小时快照:每小时采一次,做成话题热度时间序列
- 新上榜 / 掉榜分析:对比两个时间点的榜单差异
- 话题分类与时段规律:把话题按领域打标,看什么时段什么话题更容易上榜
热搜榜是「实时数据的快照难题」的最佳教材:它每分钟都在变,采集的意义不在某一刻的值,而在连续快照拼出的时间序列。学生在这里第一次理解「采集时间戳」为什么是必需字段。
- 数据明细.xlsx(含热度原始值与换算值、快照时间)
- 数据明细.html(按快照时间分组浏览)
- 数据看板.html(热度榜 Top20 + 两期榜单差异)
- 技能压缩包(榜单快照采集器,支持定时多次存档)
https://www.bilibili.com/v/popular/rank/all
榜单页 + 公开接口双通道;接口 https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all 返回 JSON(实测榜单 100 条),但必须带浏览器的 User-Agent,不带会返回 -352;接口另有频率风控,连着请求同样被拦;榜单每小时刷新
- 微博热搜 https://s.weibo.com/top/summary
需 Cookie,结构简单 - 抖音热榜 https://www.douyin.com/hot
动态渲染,参考案例 34 - 知乎热榜 https://www.zhihu.com/hot
接口返回 JSON,字段干净 - 百度热搜 https://top.baidu.com/board?tab=realtime
静态榜单页,最好复现
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 排名 | rank | 接口按data.list的顺序返回 |
| BV 号 | bvid | 接口字段bvid,拼视频链接要用它 |
| 标题 | title | 接口字段title,保持原文,不改写 |
| UP 主 | up_name | 接口owner.name |
| UP 主 ID | - | 接口owner.mid |
| 分区 | partition | 接口tname;分区名比编号tid好认 |
| 播放量 | view | 接口stat.view,是整数 |
| 弹幕数 | danmaku | 接口stat.danmaku |
| 点赞数 | like | 接口stat.like |
| 投币数 | coin | 接口stat.coin,B站特色字段 |
| 收藏数 | favorite | 接口stat.favorite |
| 转发数 | share | 接口stat.share |
| 评论数 | - | 接口stat.reply |
| 视频时长(秒) | duration | 接口duration,注意是秒不是分 |
| 视频时长 | - | 由秒换算,便于阅读与比较 |
| 发布时间 | pubdate | 接口pubdate是Unix时间戳(秒) |
| 视频链接 | url | 由BV号拼接 |
| 封面图链接 | - | 只记地址,不下载图片 |
| 榜单类型 | - | 接口用rid区分,rid=0为全站榜 |
| 采集时刻 | - | 榜单每小时变,必须记录 |
- 榜单变化追踪:每小时采一次,看什么视频在榜时间长、什么内容冲榜快
- UP 主霸榜分析:榜单里同一 UP 主占几个位置,反映头部集中度
- 分区分布:全站榜单里各分区占比,看平台内容生态
- 播放与互动比:点赞/投币/播放的比值,找「高互动」题材
B 站榜单是「接口型采集 + 实时快照」的组合练习:接口返回规整 JSON,省去解析这一步,但榜单随时在变,必须带时间戳;同时「万/亿」缩写与「--」缺失是最典型的两种脏数据,学生在这里第一次面对它们。
- 数据明细.xlsx(含快照时间与各批次榜单)
- 数据明细.html(可按分区筛选、按时长与播放量排序)
- 数据看板.html(分区占比 + UP 主 Top + 榜单前后对比)
- 技能压缩包(榜单接口采集器,含 User-Agent 配置、请求间隔与数字还原规则)
https://www.zhihu.com/explore
列表页 + 详情页两级结构清晰,回答排序口径多样,适合练分页与长文本处理
- 豆瓣小组讨论 https://www.douban.com/group/explore
长贴、回复楼层 - V2EX https://www.v2ex.com/?tab=hot
话题与回复数 - CSDN 问答 · 问题列表 https://ask.csdn.net/
首页即问题流;入口:顶部搜索框或左侧标签,含「已采纳」标记 - 百度贴吧 · 话题吧(以「考研」为例) https://tieba.baidu.com/f?kw=考研
楼中楼结构复杂,可作进阶
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 问题标题 | question | 保持原文,不改写、不截断 |
| 问题链接 | - | 绝对地址,作为主键 |
| 问题编号 | - | 从链接里的/question/之后取 |
| 回答数 | - | 数字便于排序注意「128个回答」要去掉单位 |
| 关注数 | - | 数字型;部分入口不显示,允许为空 |
| 问题标签 | tags | 多个标签用分号连接,用于分领域统计 |
| 列表页页码 | - | 便于回溯这条线索是在哪一页捞到的 |
| 问题编号 | - | 与问题表对齐的关联键 |
| 回答编号 | - | 从链接/answer/之后取,回答的主键 |
| 回答链接 | - | 绝对地址,引用时用来注明出处 |
| 回答排序 | - | 本次口径为按点赞;不同口径结果不同 |
| 回答正文 | answer | 去除「相关推荐」「作者简介」等无关块 |
| 字数 | - | 注明是否含标点 |
| 点赞数 | votes | 有的写成「1.3万」,要换算成13000 |
| 评论数 | comments | 热度参考;与点赞数配合看互动质量 |
| 作者昵称 | - | 只作统计,不点名评价、不做身份关联 |
| 作者类型 | - | 知乎会给机构认证账号打标,做来源分析时区分 |
| 回答时间 | answer_time | 相对时间(如「3天前」)需换算或原样保留 |
| 编辑状态 | - | 有的显示「编辑于…」,做数据新鲜度判断用 |
- 「高赞回答」内容特征分析:高赞回答普遍多长、什么时候发布的多
- 问题热度与回答质量关系:回答多的问题是否高赞回答占比更低
- 领域话题地图:把问题按标签归类,看哪个领域讨论最活跃
问答社区教两个东西:一是「两级 + 分页 + 节奏控制」这套通用手法的完整演练;二是「排序口径会影响结论」这个数据素养要点——同一个问题,按赞和按时间拉出来的表完全不同,报告里必须交代口径。
- 数据明细.xlsx(长文本单独存 txt 并在表中留文件名)
- 数据明细.html(问题-回答层级浏览 + 关键词检索)
- 数据看板.html(回答数分布 + 高赞回答长度分布)
- 技能压缩包(列表+详情两级抓取模板,含分页与条数上限)
https://cn.bing.com/search?q=数据采集
搜索结果结构规整、翻页参数简单,是最适合做「关键词监测」教学的对象
- 百度搜索(关键词:数据采集) https://www.baidu.com/s?wd=数据采集
有广告位,正好练「剔广告」 - 微博搜索(关键词:数据采集) https://s.weibo.com/weibo?q=数据采集
需登录态,适合做舆情线索 - 知乎搜索 https://www.zhihu.com/search
结果结构稳定,含专栏与问答 - 微信搜一搜(关键词:数据采集) https://weixin.sogou.com/weixin?type=2&query=数据采集
检索公众号文章,无需登录 - 小红书 · 搜索结果页(关键词:考研) https://www.xiaohongshu.com/search_result?keyword=考研
强登录墙,参考案例 09
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 命中关键词 | - | 多词命中时用分号隔开,是复盘词表价值的依据 |
| 监测日期 | monitor_date | 按天归档的关键 |
| 标题 | title | 保持原文,不改写 |
| 链接 | - | 绝对地址 |
| 来源域名 | domain | 只取域名,便于按站点统计 |
| 摘要 | snippet | 去除关键词高亮标签 |
| 结果性质 | - | 必应结果含网页/图片/资讯/PDF |
| 页面显示位次 | - | 含推广位的原始顺序,用于观察曝光位次 |
| 自然结果位次 | - | 与页面显示位次不同,做曝光分析应以它为准 |
| 发布时间 | - | 有的只到日期,有的没有,如实记录 |
| 搜索页页码 | - | 必应翻页参数first=1,11,21… |
| 是否广告 | is_ad | 广告一律剔除或单独标记,绝不能含糊带过 |
| 结果地区 | - | 必要时区分中外站点,用于判断信息圈层 |
- 品牌/学校声誉监测:用「学校名 + 简称 + 负面词」做关键词组,按天归档线索
- 媒体曝光来源分布:哪些网站报道最多,官方媒体占比多少
- 关键词位次追踪:一段时间内目标词在第一页的位次变化
把搜索框当成一个「外部舆情探针」,是数据采集最有现实价值的用法之一。这一案的关键教学点是「关键词组的正交设计」和「剔除广告位」——这两步不做,后面的统计结论全错。
- 数据明细.xlsx(含 is_ad 标记列,可一键筛掉推广位)
- 数据明细.html(按来源域名分组 + 关键词高亮)
- 数据看板.html(来源分布饼图 + 每日线索数折线)
- 技能压缩包(关键词监测器,词组配置化、支持按天归档)
https://www.xiaohongshu.com/search_result?keyword=考研
全课风控最严的站点之一:内容由 JavaScript 渲染、无限滚动加载,未登录只能看前若干条,继续下滚会弹登录墙;课堂只讲原理与前若干条的元数据采集
- 微博 · 话题搜索(关键词:考研) https://s.weibo.com/weibo?q=考研
需登录态,结构较简单 - 知乎 · 搜索 https://www.zhihu.com/search
结果结构稳定 - 抖音 · 搜索页(关键词:考研) https://www.douyin.com/search/考研
动态渲染 + 强风控 - B 站 · 搜索结果页(关键词:考研) https://search.bilibili.com/all?keyword=考研
有公开接口,可作对照
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 搜索关键词 | - | 一个文件一般只放一个词;多词时靠这一列区分 |
| 搜索页名次 | - | 按页面从上到下编号,与榜单的排名含义相同 |
| 笔记标题 | title | 保持原文,不改写、不截断 |
| 笔记类型 | note_type | 视频类笔记另有时长,本案例不单独取 |
| 笔记 ID | - | 取自详情页链接末尾,是稳定的主键 |
| 作者昵称 | author | 只作统计,不点名评价、不做身份关联 |
| 作者 ID | author_id | 做「同一位作者出现几次」的统计用 |
| 点赞原文 | - | 保留原文,便于核对换算 |
| 点赞数 | likes | 万=10000 |
| 收藏数 | collects | 数字型;收藏高往往代表「值得留着用」 |
| 评论数 | comments | 数字型;与点赞、收藏配合看互动 |
| 发布时间 | publish_time | 页面常显示「9-20」或「3天前」,要统一 |
| 话题标签 | tags | 多个话题用分号连接,去掉开头的井号 |
| 详情页链接 | url | 只记录,不批量打开 |
| 封面图链接 | cover | 只记地址,不下载图片 |
| 加载批次 | batch_id | 无限滚动页面,用它区分先后顺序 |
| 采集时刻 | - | 记录采集时间与是否遇到登录提示 |
- 话题热度画像:某关键词下笔记的类型、互动量、发布时间分布
- 「高收藏」笔记特征:收藏/点赞比值高的内容有什么共性(通常更实用)
- 同类话题跨平台对比:小红书与微博、B 站同一话题的讨论差异
这一案是全课「风控教育」的顶点:登录墙、无限滚动、频繁请求弹验证三件事一起出现。教学重点不是「怎么绕过去」,而是「怎么判断哪里该停」——只采公开可见的元数据,遇到登录墙就停手并如实记录。
- 数据明细.xlsx(含加载批次与数字原始值列)
- 数据明细.html(卡片式浏览,可按互动量排序)
- 数据看板.html(笔记类型占比 + 话题标签 Top + 发布时间分布)
- 技能压缩包(滚动加载采集模板 + 风控识别与停止规则)
模块二 电商数据与金融数据采集 |共 9 个案例
http://search.dangdang.com/?key=Python编程
结构稳定、字段规整(书名/价格/出版社/评论数),是做电商类采集最合适的示范站点
- 京东 · 图书搜索(关键词:Python编程) https://search.jd.com/Search?keyword=Python编程
大学生最常用的电商之一;强风控 + 需要登录态,只讲原理 - 拼多多 · 图书搜索(关键词:Python编程) https://mobile.yangkeduo.com/search_result.html?search_key=Python编程
移动端为主,风控强 - 苏宁易购 · 图书搜索(关键词:Python编程) https://search.suning.com/Python编程/
结构较规整,可作中等难度对照 - 淘宝 · 图书搜索(关键词:Python编程) https://s.taobao.com/search?q=Python编程
国内最主流的电商入口;搜索需登录态,只讲结构、不做登录采集
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | - | 采集时按页面顺序自动生成 |
| 关键词 | - | 写入文件时用来区分批次 |
| 书名 | - | 保持原文,促销前缀不要混进来 |
| 作者 | - | 多作者用「、」连接,译著另起 |
| 出版社 | - | 做出版社发文量统计用 |
| 出版时间 | - | 统一成YYYY-MM-DD |
| 定价 | - | 纯数字,单位元;页面原文「定价¥88.00」 |
| 当当价 | - | 纯数字,单位元;这是真正比价用的价格 |
| 折扣 | - | 由「7.5折」换算,保留两位小数 |
| 促销标签 | - | 没有就留空;多个标签用「;」连接 |
| 评论数 | comments | 去掉「条评论」;有「万」要乘10000 |
| 评论数原文 | - | 留档,便于回溯核对 |
| 商品链接 | url | 完整网址,能直接点开 |
| 封面图 | - | 取真实图片地址,不要占位图 |
| 采集日期 | - | 固定填当天,方便合并多次采集 |
- 同类商品价格带分析:把结果按价格分档,看主流价格集中在哪一段
- 价格与销量关系:便宜的一定卖得好吗?用散点图回答
- 比价表:一次搜索多个平台,同一本书/同一件商品的价格差
价格与销量这类字段看着简单,清洗起来最费功夫——货币符号、千分位、区间价、文案化销量,四种脏法各来一遍。这一案是「字段清洗」这一课的主战场,也是学生第一次意识到「采集只占 30% 工作量」。
- 数据明细.xlsx(原始文案列 + 结构化数值列并排,可核对)
- 数据明细.html(价格排序、按店铺筛选)
- 数据看板.html(价格分布直方图 + 价格-销量散点图)
- 技能压缩包(电商列表采集 + 价格/销量清洗规则表)
https://search.jd.com/Search?keyword=笔记本电脑
列表 HTML 带商品,价格是异步加载的;反爬严格,翻到第 3 页即要求登录,课堂只演示前 2 页
- 慢慢买 · 历史价格 https://www.manmanbuy.com/
入口:首页搜索框输入商品名或粘贴商品链接,看历史价格曲线 - 什么值得买 · 好价 https://www.smzdm.com/
比价与好价社区,可对照「促销价 vs 原价」的口径 - 中关村在线 · 笔记本 https://detail.zol.com.cn/notebook/
数码参数站,型号与参数比电商页更规整,适合做字段补充
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| SKU编号 | - | 商品链接里的那串数字,是唯一标识,按文本存 |
| 商品标题 | title | 保持原文,促销前缀不要混进来 |
| 当前价 | price | 纯数字,单位元;注意这是促销期内价格 |
| 当前价原文 | - | 留档,便于回溯核对 |
| 划线价 | list_price | 纯数字;划线价不是实际成交价 |
| 店铺名 | shop | 以页面显示为准 |
| 是否自营 | is_self | 取值为「自营」或「非自营」 |
| 店铺类型 | shop_type | 如「京东自营」「POP第三方」 |
| 商品链接 | url | 完整网址,能直接点开 |
| 评论数 | comments | 去掉「+」与「万」后换算成整数 |
| 好评率 | good_rate | 只存数字;页面写「98%」则存98 |
| 促销标签 | promo_tags | 多个标签用「;」连接,没有留空 |
| 所在地区 | region | 影响运费与到货时间 |
| 库存状态 | stock | 如「有货」「无货」「仅剩3件」 |
| 采集时间 | snapshot_at | 价格随时变,必须记时点 |
- 同类商品价格带:笔记本按价格分档,看主流价位集中在哪一段
- 价格监测曲线:隔几天采一次同一批 SKU,画出价格变化(合法且有趣)
- 自营 vs POP 对比:同型号两类店铺的价格与好评率差异
- 促销识别:带促销标签的商品是否真的更便宜
电商价格是「异步加载 + 强风控 + 口径陷阱」三合一的教材:列表页 HTML 有商品却没有价格,价格要另外取;「促销价」不等于「到手价」(还要算券与满减);翻到第 3 页就要求登录。这一案让学生第一次真正体会「能采到」与「能采全」是两回事。
- 数据明细.xlsx(当前价/划线价/到手价三列并排,含采集时间)
- 数据明细.html(可按价格排序,自营标色)
- 数据看板.html(价格分布 + 二次采集的价格变化 + 自营占比)
- 技能压缩包(异步价格采集 + 促销价与到手价换算规则)
https://book.douban.com/subject/1084336/comments/
评论分页结构清晰、文本长度适中,适合做情感倾向统计
- 京东 · 商品搜索(进《小王子》的评价区) https://search.jd.com/Search?keyword=小王子
从搜索结果进任意商品,评价区就在商品详情页下方,含评分、追评与晒图;京东对自动化请求有风控 - 大众点评 · 商户评价(广州) https://www.dianping.com/guangzhou
强反爬,只讲原理 - 黑猫投诉 · 投诉列表 https://tousu.sina.com.cn/index/
投诉文本,负面语料丰富
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | - | 从1开始,按页面顺序 |
| 条目编号 | - | 与图书表关联用,来自网址 |
| 书名 | - | 从短评页标题取,用于核对没采错页 |
| 短评正文 | - | 保留原文,另存清洗版 |
| 正文清洗 | - | 再做情感统计用这一列 |
| 评价档位 | - | 力荐/推荐/还行/较差/很差 |
| 评价分值 | - | 力荐5推荐4还行3较差2很差1 |
| 有用数 | useful | 数字型,可作为情感权重 |
| 评价时间 | - | 统一成YYYY-MM-DDHH:MM |
| 页码 | - | 便于定位与续采;也可换算成start值 |
| 情感倾向 | sentiment | 正向/负向/中性 |
| 情感得分 | score | 用于排序,正数偏正向 |
- 好评率与星级分布:词典法算出的情感倾向和真实星级对得上吗
- 差评关键词提取:负面评论集中在哪几个问题上(质量/物流/包装)
- 评论时间趋势:评分随时间是否下滑,是否存在某次改版后的口碑拐点
情感分析是「从文本到指标」的第一步。这一案特意用最简单的词典法,然后在报告里明确写出它的局限(反讽、否定句判不准)——让学生明白方法有适用边界,比给出一个漂亮数字更重要。
- 数据明细.xlsx(正文 + 情感标签 + 得分)
- 数据明细.html(可按情感筛选、关键词高亮)
- 数据看板.html(星级分布 + 情感占比 + 差评关键词榜)
- 技能压缩包(评论采集 + 词典法情感标注,词典可替换)
https://quote.eastmoney.com/center/gridlist.html
行情接口返回 JSON,字段结构稳定,是练「接口型采集」的最佳对象
- 新浪财经行情 https://finance.sina.com.cn/stock/
老牌公开行情接口 - 腾讯证券 · 个股行情(贵州茅台) https://gu.qq.com/sh600519/gp
接口简洁 - 同花顺 · 行情中心 https://q.10jqka.com.cn/
入口:首页即沪深行情;个股页形如 q.10jqka.com.cn/股票代码
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 代码 | code | 六位数字,注意保留前导零(如000001) |
| 名称 | - | 中文简称,以官方为准 |
| 最新价 | price | 单位:元,保留两位小数 |
| 涨跌幅 | change_pct | 正为涨、负为跌,只写数字,单位是% |
| 涨跌额 | change | 单位:元,与涨跌幅可互相校验 |
| 今开 | open | 单位:元 |
| 最高 | - | 单位:元 |
| 最低 | - | 单位:元 |
| 昨收 | prev_close | 单位:元,核对涨跌的基准 |
| 成交量 | volume | 单位:手,1手=100股 |
| 成交额 | amount | 单位:元;页面常显示为「3.63亿」需换算 |
| 换手率 | turnover | 单位%;反映交投活跃度 |
| 市盈率 | - | 单位:倍;亏损股可能为空或为负 |
| 总市值 | - | 单位:元;页面常以「亿」显示 |
| 采集时间 | snapshot_at | 每次刷新都记,行情是时点数据 |
- 自选股行情屏:把自己关注的 20 只股票做成可一键刷新的行情表
- 行业板块涨跌对比:哪个板块今天是资金主线
- 涨跌幅排序与分布:全市场涨跌家数分布,判断当天市场温度
金融数据天然是结构化的(接口直接给 JSON),所以这一案的教学重点不在解析,而在「数据口径」:复权不复权、时点行情还是收盘价、单位是万元还是亿元。口径错一次,后面所有结论全废。
- 数据明细.xlsx(含快照时间列,可多次采集后对比)
- 数据明细.html(涨红跌绿染色,可排序)
- 数据看板.html(涨跌家数分布 + 板块热力表)
- 技能压缩包(行情接口采集器,代码列表可配置)
https://quote.eastmoney.com/sh600519.html
个股页带 K 线与历史行情入口,可按日期区间取日线;配合案例 13 的实时行情做「存量入库 + 增量更新」
- 搜狐证券 · 历史行情(贵州茅台) https://q.stock.sohu.com/cn/600519/lshq.shtml
可按日期区间取历史行情,字段干净、页面轻 - AKShare · 股票数据接口文档 https://akshare.akfamily.xyz/data/stock/stock.html
开源数据接口,课堂只讲数据口径与合规边界
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 日期 | date | 主键之一,统一成YYYY-MM-DD |
| 代码 | - | 主键之一,六位数字 |
| 名称 | - | 以官方披露为准 |
| 开盘 | - | 单位:元 |
| 最高 | - | 单位:元 |
| 最低 | - | 单位:元 |
| 收盘 | - | 单位:元,最常用 |
| 前收 | - | 单位:元,算涨跌幅的基准 |
| 涨跌幅 | change_pct | 计算列:正涨负跌,单位% |
| 涨跌额 | - | 计算列:单位元,可与涨跌幅互校 |
| 成交量 | volume | 单位:手,1手=100股 |
| 成交额 | amount | 单位:元 |
| 振幅 | - | 计算列:(最高−最低)÷前收×100% |
| 换手率 | - | 单位%;成交量÷流通股本 |
| 均线5 | - | 计算列:前4天凑不满5天,留空 |
- 个股日线库建设:落成 CSV + SQLite 两张表,主键为「代码 + 日期」
- 增量更新:只追加本地没有的交易日,重复运行不产生重复行
- 技术指标复盘:5 日均线上下穿对应的后续收益分布(教学演示,非投资建议)
这一案把「数据采集」升级成「数据资产」:采集只是入口,能不能增量更新、主键设计对不对、口径写没写清楚,决定这份数据明天还能不能用。是整门课工程习惯训练最集中的一篇。
- 数据明细.xlsx(日线明细 + 指标列)
- 数据明细.html(K 线数据表格,按日期倒序)
- 数据看板.html(收盘价折线 + 均线 + 涨跌幅柱)
- SQLite 数据库文件(含主键与索引说明)
- 技能压缩包(历史行情增量入库器,支持多代码批量)
https://data.eastmoney.com/bkzj/hy.html
行业/概念/地域三类资金流同页可切,今日/5日/10日三种口径可换;数据由本站同源接口 getbkzj 返回 JSON,无需登录、无验证码,浏览器可直接打开验证;盘中数据实时变,报告必须写口径与采集时刻
- 东方财富 · 概念资金流 https://data.eastmoney.com/bkzj/gn.html
换一类板块看资金主线 - 东方财富 · 地域资金流 https://data.eastmoney.com/bkzj/dy.html
按地域分组,可讲「板块怎么划分」 - 东方财富 · 大盘资金流 https://data.eastmoney.com/zjlx/dpzjlx.html
把「板块」换成「全市场」,看资金总量的口径 - 同花顺 · 数据中心 https://data.10jqka.com.cn/
入口:首页左侧「资金流向 / 龙虎榜」,口径与东财不完全相同 - 新浪财经 · 行情 https://finance.sina.com.cn/stock/
老牌公开行情接口 - 雪球 · 行情中心 https://xueqiu.com/hq
社区 + 行情,部分数据需登录
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 板块代码 | code | 接口字段f12,以BK开头,按文本存 |
| 板块名称 | name | 接口字段f14,照原文,不加简称 |
| 榜单口径 | - | 今日/5日/10日;接口用key=f62/f164/f174区分 |
| 榜单名次 | - | 按主力净流入从大到小,从1开始 |
| 涨跌幅 | change_pct | 单位%;接口f3是放大100倍的整数,须除以100 |
| 主力净流入净额 | main_net | 接口f62,单位元;正为净流入、负为净流出 |
| 主力净流入净占比 | main_pct | 接口f184,单位%;同样须除以100 |
| 超大单净流入净额 | xl_net | 接口f66,单位元 |
| 大单净流入净额 | lg_net | 接口f72,单位元;与超大单之和等于主力净流入 |
| 中单净流入净额 | md_net | 接口f78,单位元 |
| 小单净流入净额 | sm_net | 接口f84,单位元;中小单多为散户 |
| 采集时间 | snapshot_at | 盘中数据实时变,必须记时点 |
- 板块资金排行:当天主力净流入 Top20 的板块,看资金主线在哪
- 口径对比:同一批板块按今日/5日/10日分别排名,第一名各不相同
- 板块内部分化:主力净流入为正、涨跌幅却为负,说明了什么
- 资金自洽校验:用「超大单+大单」核对主力净流入,检验取数是否可信
金融数据里「单位」「缩放」「口径」是三大陷阱:页面写「亿」而接口给「元」;百分数类字段是放大 100 倍的整数;换一个时间口径,榜单第一名就换人。学生必须能说清「这个数字是怎么来的、是哪个口径的」,否则结论站不住。
- 数据明细.xlsx(金额统一成「元」、百分数已还原,含口径与采集时间)
- 数据明细.html(涨红跌绿染色,可按净流入排序)
- 数据看板.html(板块净流入排行 + 口径对比)
- 技能压缩包(资金流接口采集 + 单位与缩放还原规则 + 口径标注模板)
https://fund.eastmoney.com/000001.html
净值序列与十大重仓股两张表,可做表间关联,是「多表建模」的好范例
- 中国证券投资基金业协会 https://www.amac.org.cn/
入口:首页「数据统计」→ 公募基金市场数据(月度) - 蚂蚁财富 / 支付宝基金 https://www.antfortune.com/
需登录,仅讲原理
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 基金代码 | fund_code | 六位,按文本存,防止前导零丢失;关联主键 |
| 基金名称 | fund_name | 以官方简称为准 |
| 基金类型 | - | 股票型/混合型/债券型/指数型等 |
| 净值日期 | nav_date | 交易日;与代码组成主键 |
| 单位净值 | nav | 单位:元,保留四位小数 |
| 累计净值 | acc_nav | 单位:元,与单位净值不同 |
| 日增长率 | - | 单位%,正涨负跌 |
| 近1月 | - | 单位%,区间口径 |
| 近1年 | - | 单位%,区间口径 |
| 基金经理 | manager | 以最新披露为准,多人用「、」连接 |
| 基金代码 | fund_code | 关联净值表 |
| 股票名称 | stock_name | 以季报披露为准 |
| 股票代码 | stock_code | 六位,可能为空 |
| 占净值比例 | weight | 单位%,按大小降序排列 |
| 持股数 | - | 单位:万股 |
| 报告期 | report_period | 说明这是何时披露的,切勿省略 |
- 基金净值走势对比:3 只同类基金近一年走势叠在一张图上
- 重仓股集中度:十大重仓占比之和反映基金的分散/集中风格
- 多只基金重仓股交集:找出被机构共同看好的股票(教学演示)
基金数据里藏着一个极其重要的口径问题:重仓股是季报披露的静态快照,不是实时持仓。学生在做分析时如果把它当成「当前持仓」,结论就会错得离谱。这一案专治「不看口径就下结论」。
- 数据明细.xlsx(净值表 + 持仓表两个 Sheet,可关联)
- 数据明细.html(按基金切换查看)
- 数据看板.html(净值走势叠加 + 持仓占比条形图)
- 技能压缩包(基金双表采集器,含季报口径提示)
http://www.cninfo.com.cn/new/commonUrl?url=disclosure/list/notice
证监会指定信息披露平台,公告列表结构规整,附件为 PDF
- 上海证券交易所 披露 https://www.sse.com.cn/disclosure/listedinfo/announcement/
官方渠道 - 深圳证券交易所 披露 https://www.szse.cn/disclosure/listed/notice/
官方渠道 - 东方财富 数据中心 https://data.eastmoney.com/notices/
聚合较全
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 股票代码 | - | 六位,按文本存,保留前导零 |
| 公司简称 | name | 以官方简称为准 |
| 公告标题 | title | 不截断、不改写 |
| 公告类型 | type | 见下方类型清单 |
| 公告日期 | date | 统一成YYYY-MM-DD |
| 附件链接 | - | 完整网址,可下载 |
| 附件文件 | - | 规范命名,见5.2 |
| 报告期 | report_period | 必须写清,来自哪份报告 |
| 营业收入 | - | 保留单位;单位陷阱高发 |
| 净利润 | net_profit | 注意是否归母口径、是否扣非 |
| 营收同比 | - | 单位%,只写数字 |
| 净利同比 | - | 单位%,注意「由负转正」这类表述 |
- 公告台账:把某家上市公司近 3 年公告按类型归档成可检索台账
- 业绩预告汇总:同行业公司预告的净利润增速对比(教学演示)
- 附件归档:按「代码_日期_类型」规范命名,形成本地 PDF 资料库
这一案把「列表 → 附件 → 抽取」这条链条走完,第一次接触 PDF 这类非结构化附件。同时也建立一条重要习惯:涉及财务数字,必须以官方披露原文为准,聚合站的数据只能用来交叉参考。
- 数据明细.xlsx(公告台账 + 财报要点两个 Sheet)
- 数据明细.html(按类型/年份筛选,附件可点击)
- 数据看板.html(公告类型分布 + 按季度披露量)
- 技能压缩包(公告采集 + PDF 规范归档)
https://data.eastmoney.com/report/
研报列表含标题/机构/分析师/评级/日期,摘要需点进详情;同一篇研报同时有网页与 PDF 两种载体
- 证券时报 · 快讯 https://www.stcn.com/article/list/kx.html
财经资讯,更新快 - 巨潮资讯网 · 公告检索 http://www.cninfo.com.cn/new/commonUrl?url=disclosure/list/notice
法定披露平台,研报引用须回溯原文 - 新浪财经 · 滚动新闻 https://finance.sina.com.cn/roll/
资讯聚合 - 中国证券报 · 要闻 https://www.cs.com.cn/xwzx/
官方媒体,权威性高
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 标题 | title | 不截断、不改写 |
| 来源机构 | org | 以页面署名为准 |
| 分析师 | analyst | 多人用「、」连接 |
| 发布日期 | pub_date | 统一成YYYY-MM-DD |
| 所属行业 | industry | 以研报标注为准 |
| 涉及个股 | stocks | 从摘要抽名称或代码,多个用「、」连接 |
| 评级 | rating | 记录原文用词,另设映射列 |
| 目标价 | target_price | 纯数字,单位元;未披露则留空 |
| 摘要 | summary | 只做简短摘录,不整篇转载 |
| 研报页链接 | url | 完整网址 |
| PDF链接 | - | 完整网址,可下载 |
| 页数 | pages | 整数;用于估计篇幅 |
- 机构评级台账:某行业近半年研报的评级与目标价汇总(教学演示)
- 评级口径归一:把「买入/推荐/强推」映射到统一档位后再统计
- 研报密度趋势:某行业研报数量随时间的变化,看机构关注度
研报是「从非结构化文本里抽字段」的最佳素材:评级、目标价这类关键信息往往埋在一段中文摘要里,必须用关键词 + 正则去取,取不到要留空。同时它训练「出处」意识——研报是机构观点,采集时必须保留来源与链接,引用要标出处。
- 数据明细.xlsx(评级归一化列 + 目标价与抽取失败标记)
- 数据明细.html(按机构/行业筛选,可点开原文)
- 数据看板.html(机构产出排行 + 评级分布 + 行业密度)
- 技能压缩包(研报采集 + 文本字段抽取正则表 + 出处标注)
模块三 生活服务数据采集 |共 9 个案例
https://lishi.tianqi.com/guangzhou/202608.html
网址规律=城市拼音+年月;页面只服务端渲染每月 1~10 日,其余必须走 /monthdata 接口补齐;站点限流严格,页面连续约 2 次请求即被重定向到 404 页
- 中国天气网 · 广州天气预报 http://www.weather.com.cn/weather/101280101.shtml
官方预报,静态页 - 生态环境部 · 城市空气质量实时发布 https://air.cnemc.cn:18007/
入口:首页地图点选城市,或按城市名查询逐时 AQI 与 PM2.5 - 和风天气 · 开发文档(API) https://dev.qweather.com/docs/api/
注册后可用的合规 API
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 日期 | date | 统一成YYYY-MM-DD |
| 年月 | ym | 做月度透视表用 |
| 星期 | weekday | 由日期派生 |
| 城市 | city | 多城市采集时的区分主键 |
| 天气现象 | weather | 照录原文,不要改写 |
| 天气类型 | weather_type | 把「多云转阴」「阴转多云」归成同一类便于统计 |
| 最高温 | high | 纯数字,单位统一为摄氏度 |
| 最低温 | low | 纯数字 |
| 温差 | temp_range | 由前两列派生 |
| 风向 | wind_dir | 如为「无持续风向」照录 |
| 风力 | wind_level | 保留原文口径,不擅自换算 |
| 空气质量指数 | aqi | 2017年11月之前为空,缺失要留空不是0 |
| PM2.5 | pm25 | 与AQI同时段才有值 |
| 数据来源通道 | channel | 双源采集时用于追溯与交叉校验 |
| 平均高温 | avg_high | 站点统计卡上的值 |
| 平均低温 | avg_low | 站点统计卡上的值 |
| 极端高温 | extreme_high | 站点统计卡上的值 |
| 极端低温 | extreme_low | 站点统计卡上的值 |
| 平均AQI | avg_aqi | 早期月份为空 |
| 缺失天数 | missing_days | 老月份站点本身可能缺日,如实记录 |
- 城市气温年际对比:同一城市近 10 年同期气温变化趋势
- 冷暖冬判断:把每年冬季均温拉成一条序列,看哪几年是冷冬
- 空气质量日历:按日映射颜色,做成一年一张的 AQI 热力日历
- 双源交叉校验:页面与接口重叠日期的气温是否一致,定位是哪条通道出的错
天气是「时间序列数据」的天然教材:有缺失值、有异常值、有口径切换(早期没有逐日 AQI)。学生在这里练习把一列「12~24℃」拆成两列数值、把缺失如实标成 null 而不是 0,这些是所有数据分析的基本功。本案例已真实跑完广州 87 个月 / 2611 条逐日记录。
- 数据明细.xlsx(逐日明细 + 月度统计卡两个部分,含字段字典与质量校验 Sheet)
- 数据明细.html(按年月筛选、可按气温排序)
- 数据看板.html(气温走势 + AQI 日历 + 月度对比)
- 气温走势图(逐月 PNG + 可筛选图库页 + 汇编 PDF,可直接打印)
- 技能压缩包(双通道采集 + 断点续跑 + 质量自校验)
https://job.ncss.cn/student/jobs/index.html
教育部学生服务与素质发展中心运营,职位列表公开、无需登录、无验证码;岗位名称、学历、薪资、城市、专业、单位名称与性质、单位规模、招聘人数、发布时间、福利标签都在列表页上一眼可见(实测当日职位总数约 95 万条,列表按发布时间倒序、可分页)
- 国聘网 · 岗位列表 https://www.iguopin.com/job
央企国企官方渠道,参考案例 21 - 校园就业信息网 http://jyw.gcut.edu.cn/
广州城市理工学院就业网,本地企业与进校宣讲信息最直接 - 实习僧 · 实习岗位列表 https://www.shixiseng.com/interns
实习/兼职岗位,与校招季互补 - 牛客网 · 校招岗位 https://www.nowcoder.com/jobs/school
职位列表现已需登录才能看全,课堂只讲字段结构与合规边界,不教绕过 - BOSS 直聘 · 职位搜索(数据分析 / 广州) https://www.zhipin.com/web/geek/job?query=数据分析&city=101280100
风控最严,仅作合规讨论 - 智联招聘 · 职位搜索(广州) https://sou.zhaopin.com/?jl=763&kw=数据分析
有登录墙与风控,只讲原理
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 岗位名称 | job_title | 取自职位列表,照录不删括注、不改写 |
| 单位名称 | company | 保留页面原文,另建规范化列,不强行合并简称与全称 |
| 单位性质 | ownership | 国有企业 / 民营企业 / 股份制企业 / 事业单位 等有限几档 |
| 单位规模 | - | 照录页面写法,如 1-49 人 / 5000 以上 |
| 工作城市 | city | 照录原文;有的写省份(如「山东」),「全国」留空并备注 |
| 学历要求 | education | 统一成 不限 / 大专 / 本科及以上 / 硕士 / 博士 五档 |
| 专业要求 | major | 页面用空格分隔,统一用「、」连接,另拆标签列 |
| 招聘人数 | headcount | 从「招聘 N 人」抽数字;「招聘人数不限」记为空值并备注,不填 0 |
| 薪资文案 | salary_raw | 原样保留,如 5-20K/月、6-8K/月、面议 |
| 发布时间 | - | 列表按发布时间倒序,格式 2026-10-15 10:32 |
| 月薪下限 | salary_min | 「6-8K/月」→ 下限 6000,「K」按 1000 元计 |
| 月薪上限 | salary_max | 「6-8K/月」→ 上限 8000,不用区间平均值代替 |
| 福利标签 | - | 页面用「,」分隔,统一成「、」连接,便于做词频统计 |
- 本地就业市场画像:城市 / 单位性质 / 学历 / 薪资四维分布
- 薪资带分析:按学历分层看月薪中位数差多少
- 岗位去重:同一岗位反复刷新、一家单位挂多条岗位,按「单位名称 + 岗位名称 + 工作城市」联合去重
招聘数据是「清洗价值最高」的一类:薪资文案的清洗口径直接决定整个分析的可信度。同时它也是个人信息保护意识的最佳切入点——学生很容易顺手把招聘负责人的电话也抓下来,案例里必须明确划出这条红线。
- 数据明细.xlsx(原始薪资文案 + 换算后数值并排)
- 数据明细.html(按城市/学历筛选,薪资排序)
- 数据看板.html(城市岗位数 + 薪资区间分布 + 学历结构)
- 技能压缩包(岗位采集 + 薪资换算规则表 + 联合去重键)
https://www.iguopin.com/job
国家级招聘平台,企业性质、岗位、宣讲会信息齐全;岗位信息公开、部分功能需登录,课堂只采公开列表前几页
- 牛客网 · 校招岗位 https://www.nowcoder.com/jobs/school
校招信息 + 笔试面试经验;职位列表现已需登录,仅作字段结构参考 - 应届生求职网 · 广州站 https://www.yingjiesheng.com/guangzhou/
校招宣讲会日程较全 - 国家大学生就业服务平台 https://www.ncss.cn/
教育部主管的官方平台,岗位与宣讲会信息可与国聘对照 - 校园就业信息网 http://jyw.gcut.edu.cn/
广州城市理工学院就业网,本校宣讲会与招聘会公告最直接的来源
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 单位名称 | company | 保留公告原文,不擅自缩写 |
| 单位性质 | ownership | 归为央企/国企/民企/外企四类 |
| 岗位名称 | job_title | 去掉「急聘」「高薪」等营销词,不改岗位本名 |
| 招聘人数 | headcount | 从「招聘 N 人」抽数字;「招聘人数不限」记为空值并备注,不填0 |
| 学历要求 | education | 统一成大专/本科/硕士/博士四档 |
| 专业要求 | major | 多专业用「、」连接,另拆标签列 |
| 工作城市 | city | 跨市岗位取第一个;「广州/深圳」取第一个 |
| 薪资文案 | - | 原样保留,作为清洗依据 |
| 薪资下限 | - | 「8-12K」→下限8000 |
| 薪资上限 | - | 「8-12K」→上限12000 |
| 宣讲时间 | talk_time | 统一成YYYY-MM-DDHH:MM |
| 宣讲地点 | talk_place | 原样保留并尽量补校区信息 |
| 网申截止 | deadline | 统一成YYYY-MM-DD |
| 剩余天数 | - | 由两列派生,用来排「最急的岗位」 |
| 投递链接 | apply_url | 只记公开投递入口,不记联系人电话 |
| 是否接受应届生 | for_fresh | 从岗位说明判断,是/否/未知 |
- 本校宣讲会日历:按周排出宣讲会日程,含时间、地点与倒计时
- 能报岗位清单:按自己的专业与学历筛出「能报」的国聘岗位
- 单位性质画像:央企/国企/民企的岗位数与学历要求分布
- 截止倒计时表:把网申截止日排序,做成「别错过」提醒表
招聘信息里最值钱的是「时间」——宣讲会和网申截止一旦错过就没了,所以这一案的重点是把各式各样写法的日期统一成标准格式并排序。同时它也是诚信职业操守教育的天然场景:简历不注水、面试不造假、签约要守约。
- 数据明细.xlsx(日期标准化列 + 倒计时列 + 专业匹配标记)
- 数据明细.html(按城市/学历/单位性质筛选,按截止日排序)
- 数据看板.html(单位性质分布 + 学历要求结构 + 宣讲会日程)
- 技能压缩包(招聘信息采集 + 日期标准化与专业匹配规则)
https://gz.lianjia.com/ershoufang/
列表 + 详情两级结构,字段丰富(户型/面积/朝向/楼层/总价/单价)
- 贝壳找房 https://gz.ke.com/ershoufang/
同源体系,字段接近 - 安居客 · 广州二手房 https://guangzhou.anjuke.com/sale/
风控较强 - 房天下 · 广州二手房 https://gz.esf.fang.com/
可作对照
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 房源标题 | - | 照录原文,含卖点描述 |
| 详情链接 | - | 作为主键,相对地址要补全域名 |
| 小区 | community | 关联板块分析的关键字段 |
| 区域 | - | 统一成「行政区·板块」两段式 |
| 户型 | - | 统一成「X室X厅」 |
| 建筑面积 | area | 只留数字,单位㎡;注意是建筑面积还是套内面积 |
| 朝向 | orientation | 照录原文;「南北」按多朝向处理 |
| 楼层 | floor | 保留原文,另拆「楼层区间」与「总层数」 |
| 建成年代 | - | 只留年份,用于筛房龄 |
| 挂牌总价 | - | 只留数字;单位万元务必单独标口径 |
| 挂牌单价 | - | 页面原始值,保留不覆盖 |
| 计算单价 | - | =挂牌总价×10000÷建筑面积,保留整数 |
| 挂牌日期 | list_date | 判断房源新鲜度,越新越值得跟进 |
- 板块房价地图:按行政区和板块算均价,找出价格洼地
- 面积-总价关系:做散点图找异常挂牌(明显偏离拟合线的房源)
- 户型供给结构:市场主流是几室几厅,改善型占比多少
房源数据是「多字段清洗 + 交叉校验」的综合练习:总价、面积、单价三者互相约束,一旦三者对不上就说明清洗出了错。这种自带校验关系的数据,是训练学生自查能力的最好素材。
- 数据明细.xlsx(含单价交叉核对列与差异标记)
- 数据明细.html(按区域筛选、单价排序、异常标红)
- 数据看板.html(面积-总价散点 + 板块均价对比 + 户型分布)
- 技能压缩包(两级采集 + 单位换算 + 交叉校验规则)
https://piaofang.maoyan.com/dashboard
榜单页结构清晰,日票房/累计票房/排片占比字段齐全
- 豆瓣电影 · Top250 榜单 https://movie.douban.com/top250
公开经典榜单:排名、片名、评分、评价人数、年份与一句话影评,每部影片带海报图片,可练「数据表+图片文件夹」的混合采集 - 网易云音乐 · 热歌榜 https://music.163.com/discover/toplist?id=3778678
公开音乐榜单:排名、歌曲、歌手、专辑、时长、热度,专辑封面图可下载、歌词 LRC 可存为文本文件;只采公开元数据与图文,不下载音频本体 - 豆瓣电影 · 排行榜 https://movie.douban.com/chart
站点自称「豆瓣电影排行榜」:评分与评价人数,注意有反爬 - 中国电影数据信息网 https://www.zgdypw.cn/
国家电影专资办主办,首页发布当日票房大盘与影片、影院票房数据,是国内票房分账的依据数据源 - 淘票票 · 正在热映 https://www.taopiaopiao.com/
入口:首页「正在热映」看评分与想看数,可与猫眼对照 - 时光网 · 影片库与排行 https://movie.mtime.com/
国内可直接访问的影片库与评分,可与豆瓣、猫眼做「不同评分口径」的对照 - 大麦网 · 演出票务 https://www.damai.cn/
入口:首页切城市后搜演出名,取票价区间与想看人数
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 采集日期 | - | 快照主键之一,多天数据靠它区分 |
| 排名 | - | 以榜单上的名次为准 |
| 影片名 | movie | 保留榜单原文,作为影片主键 |
| 上映日期 | release_date | 做档期分析 |
| 累计票房 | total_box | 统一换算成万元;存量指标 |
| 累计票房原文 | - | 照录,便于核对单位换算 |
| 当日票房 | daily_box | 统一换算成万元;流量指标 |
| 排片占比 | show_ratio | 只留数字,另记口径为百分比 |
| 上座率 | seat_ratio | 只留数字,另记口径为百分比 |
| 评分 | score | 注明评分制式(10分制/5分制) |
| 评分人数 | score_count | 热度指标,随上映天数增长 |
| 档期 | release_slot | 按上映日期归入春节档/暑期档/国庆档/其他 |
- 票房曲线:把每日快照连成累积票房曲线,看长尾还是短爆
- 口碑与票房关系:高分电影是否一定高票房(做散点图证伪常识)
- 档期对比:春节档 vs 暑期档 vs 国庆档的日均票房量级
票房是「时间序列 + 每日快照」的典型:单天的数字没有意义,连续采集才能看到曲线形状。同时这一案可以做一个很漂亮的教学实验——用数据证伪「高评分等于高票房」这个直觉。
- 数据明细.xlsx(每日快照表,可透视成影片×日期矩阵)
- 数据明细.html(按影片分组看每日变化)
- 数据看板.html(票房曲线 + 评分-票房散点 + 档期对比)
- 技能压缩包(榜单每日快照器,自动按天归档)
https://you.ctrip.com/sight/guangzhou152.html
攻略与景点点评同体系;页面动态加载、点评需分页,门票常有区间价与套票,评分有 5 分制与 10 分制两种口径
- 马蜂窝 · 目的地攻略 https://www.mafengwo.cn/mdd/
攻略社区,内容深、点评多 - 穷游网 · 目的地攻略 https://www.qyer.com/
入口:首页搜索框输入城市名,进景点、行程与游记列表 - 飞猪 · 旅游攻略 https://www.fliggy.com/gonglue/
阿里体系,含门票与酒店 - 大众点评 · 广州站(景点频道入口) https://www.dianping.com/guangzhou
从首页「景点」频道进;强反爬,只讲原理 - 小红书 · 探索页 https://www.xiaohongshu.com/explore
图文攻略社区,参考案例 09
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 景点名称 | spot_name | 照录原文,不改别名 |
| 所在城市 | city | 统一到城市名,不含省份 |
| 景点类型 | - | 归并到有限几类便于筛选 |
| 门票价格原文 | - | 原样保留,作为清洗依据 |
| 门票下限 | - | 「60」→下限60;免费景点记0并备注 |
| 门票上限 | - | 含套票时取套票价 |
| 是否套票 | - | 是/否 |
| 开放时间 | open_time | 统一成24小时制 |
| 是否周一闭馆 | - | 从开放时间说明判断,是/否/未知 |
| 建议游玩时长 | suggest_duration | 照录原文 |
| 时长分钟 | - | 「半天」按240分钟,供排序筛选 |
| 评分原制式 | - | 记录原始口径 |
| 评分统一5分制 | - | 10分制÷2;保留一位小数 |
| 点评数 | review_count | 「1.2万」还原成整数 |
| 热度排名 | hot_rank | 没有排名就留空 |
| 最佳季节 | best_season | 照录页面说法 |
| 交通提示 | traffic_tip | 截取前100字 |
| 攻略标题 | guide_title | 只取标题,不取攻略正文 |
| 攻略作者 | guide_author | 只记公开昵称,不记其他个人信息 |
| 发布时间 | pub_time | 统一成YYYY-MM-DD |
| 详情链接 | url | 用于溯源,不重复下载图片等版权内容 |
- 小长假行程候选清单:按城市与游玩时长筛出候选景点,导成带门票与交通的表
- 评分口径统一:把 5 分制与 10 分制评分归一后做城市对比
- 门票与热度关系:贵的一定热度高吗
- 攻略关键词:高热度景点攻略里反复出现的词
旅游数据的坑集中在「口径」:评分有 5 分制也有 10 分制、门票有单票也有套票和区间价、开放时间还带「周一闭馆」。这些不统一,跨平台对比就是错的。学生做完这一案,会养成「先对口径再算指标」的习惯。
- 数据明细.xlsx(评分归一列 + 门票区间拆分列 + 时长分钟数)
- 数据明细.html(按城市筛选,评分与热度排序)
- 数据看板.html(城市景点热度榜 + 评分分布 + 门票价格带)
- 行程候选清单(按城市与时长筛好,可直接用于排行程)
- 技能压缩包(攻略与点评采集 + 评分口径统一规则)
https://lbs.amap.com/api/webservice/guide/api-advanced/search
有官方接口与免费额度,返回 JSON 含名称/地址/评分/分类,是最合规的示范路线
- 大众点评 · 广州站 https://www.dianping.com/guangzhou
本地生活商户与评价最主要的公开入口;强反爬,课堂只讲原理 - 高德地图 · 网页版商户检索 https://www.amap.com/
首页按城市浏览地图与周边商户,是示范接口的图形化对照 - 百度地图 · 网页版地点检索 https://map.baidu.com/
网页版地点检索,可与高德的 POI 字段对照 - 饿了么 · 手机版首页 https://h5.ele.me/
入口:定位后按品类浏览商户;动态渲染,可与百度地图的 POI 对照 - 百度地图开放平台 https://lbsyun.baidu.com/
地点检索等 Web 服务 API 的说明与申请入口;需登录百度账号并申请 Key,可与高德对照
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 商户名称 | name | 接口name字段,保留原文含门店后缀 |
| 分类 | category | 接口type字段,分号分隔;另拆出一级分类 |
| 评分 | rating | 接口biz_ext.rating |
| 人均消费 | avg_cost | 接口biz_ext.cost,常缺省 |
| 评论数 | review_count | 热度指标;接口不返回时留空并备注 |
| 行政区 | district | 由adname得到,或从地址拆出 |
| 商圈 | biz_area | 由business_area得到优先用接口值 |
| 详细地址 | - | 由address去除行政区商圈后得到 |
| 经度 | lng | 接口location的经度部分,直接可用 |
| 纬度 | lat | 接口location的纬度部分,直接可用 |
| 营业时间 | - | 接口biz_ext.open_time |
| POI 编号 | poi_id | 接口id字段,作用户去重与追溯的主键 |
- 餐饮密度热力:按商圈统计商户数,找出竞争最激烈的区域
- 评分与人均消费关系:贵的一定好吃吗
- 连锁品牌门店分布:把同名门店聚合,看品牌开店策略
这一案强调「接口优先」的合规思路:能用官方开放平台就不要去爬页面。同时地址文本结构化(从一长串地址里抽出行政区与商圈)是数据清洗里极其常用的一步,几乎每个行业都会用到。
- 数据明细.xlsx(含结构化后的行政区/商圈列)
- 数据明细.html(按行政区筛选、评分排序)
- 数据看板.html(商圈商户数排行榜 + 评分分布 + 地图散点)
- 技能压缩包(开放平台 API 采集模板 + 地址结构化规则)
https://kyfw.12306.cn/otn/leftTicket/init
查询结果含车次/出发到达/时刻/历时/票价/余票,字段结构化程度高
- 携程 · 火车票查询 https://trains.ctrip.com/
入口:首页填出发站、到达站与日期;有 WAF,浏览器可开、脚本会被拦 - 携程 · 机票查询 https://flights.ctrip.com/
入口:首页填航线与日期,取航班时刻与票价 - 去哪儿 · 火车票 https://train.qunar.com/
入口:首页填车站与日期,可与 12306 的余票口径对照 - 飞猪 · 出行频道 https://www.fliggy.com/
入口:首页顶部「火车票 / 机票」;深链会超时,用首页进
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 车次号 | - | 照录原文,含字母前缀(G/D/K/T/Z等) |
| 出发站 | from_station | 保留站名与城市,站点全称 |
| 到达站 | to_station | 保留站名与城市,站点全称 |
| 出发时刻 | depart_time | 统一成HH:MM,补前导零 |
| 到达时刻 | arrive_time | 统一成HH:MM;跨天到达的按本日刻度记录 |
| 是否跨天 | - | 到达时刻小于出发时刻即判定为「是」 |
| 历时 | duration | 照录页面写法,便于核对 |
| 历时分钟 | - | 「X小时Y分」→X×60+Y |
| 席别 | seat_class | 二等座/一等座/商务座/硬卧/硬座等照录 |
| 票价 | price | 纯数字去掉「¥」「元」「起」币种另注为人民币 |
| 余票 | remain | 原文照录 |
| 查询日期 | - | 班次与票价随时间变化,这一列是数据的背景 |
- 最优班次筛选:按出发时段或总历时排序,找出上学/回家最优路线
- 票价与历时关系:更快的车一定更贵吗
- 跨天班次识别:演示「时刻字段不能只按字符串排序」这个坑
时刻与历时是最容易出错的字段类型:字符串排序会把「9:05」排在「10:30」后面,跨天到达更是经典陷阱。学生在这里必须把「历时转分钟」「跨天判断」写成明确的规则,而不是凭感觉。
- 数据明细.xlsx(含历时分钟数与跨天标记)
- 数据明细.html(可按出发时段/历时/票价排序)
- 数据看板.html(票价-历时散点 + 班次时段分布)
- 技能压缩包(班次采集 + 时刻规范化规则表)
https://hotels.ctrip.com/hotels/list?city=32&checkin=2026-10-20&checkout=2026-10-22
酒店列表动态加载,价格随入住日期变动;链接必须带 checkin/checkout 参数,且日期要用今天或之后,否则会被弹去登录页;连续请求会弹验证码,课堂只采少量页面
- 去哪儿 · 酒店比价 https://www.qunar.com/
入口:首页「酒店」按城市与日期查,做跨平台比价 - 美团 · 酒店频道(广州) https://hotel.meituan.com/guangzhou/
本地生活体系,风控强:脚本访问直接 403,浏览器可正常打开 - 同程旅行 · 酒店频道 https://www.ly.com/hotel/
聚合平台 - 飞猪 · 酒店频道 https://www.fliggy.com/
阿里体系 - 华住会 · 官方预订 https://www.hworld.com/
入口:首页选城市与日期查官方房价,与聚合平台价对照
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 酒店名称 | hotel_name | 保留原文,不擅自简写 |
| 城市 | city | 统一到城市名 |
| 行政区或商圈 | district | 便于按位置筛选 |
| 地址 | address | 照录原文 |
| 星级 | star | 统一成经济型/3星/4星/5星等档位 |
| 用户评分 | rating | 多为5分制;注明制式 |
| 点评数 | review_count | 还原成整数 |
| 房型 | room_type | 照录原文,去掉促销词 |
| 是否含早 | with_breakfast | 含早/不含早/未知 |
| 早餐份数 | - | 不含早记0;未知留空 |
| 入住日期 | checkin_date | 所有价格的前提,必须固定 |
| 价格 | price | 纯数字,去掉「¥」与「起」,「起」另设备注 |
| 剩余房量 | rooms_left | 「低价房已售完」记0;未知留空 |
| 距离地标 | distance | 分行记录距离对象与米数 |
| 详情链接 | url | 用于溯源 |
| 采集时间 | - | 价格实时变,必须记录 |
- 学校周边住酒店指南:固定日期采学校附近酒店,按价格与距离排
- 价格与日期关系:同一酒店不同入住日期的价格波动
- 商圈酒店分布:按商圈统计酒店数与价格带
- 含早与否的价差:把含早升级到同一口径再比价
酒店价格是「时点 + 条件」双重依赖的数据:不固定入住日期、不区分房型与含早,比出来的价格毫无意义。这一案把「控制变量」这个实验思维直接落到采集字段设计上——哪些字段必须固定、哪些必须记录,学生要自己想清楚。
- 数据明细.xlsx(入住日期列 + 房型/含早口径列 + 挂牌价)
- 数据明细.html(按商圈筛选,价格与距离排序)
- 数据看板.html(商圈酒店分布 + 价格带 + 距离-价格散点)
- 技能压缩包(动态页采集 + 固定条件与口径标注规则)
模块四 自选主题数据采集 |共 9 个案例
https://kns.cnki.net/kns8s/defaultresult/index?kw=数据采集
中文文献元数据字段完整;开放获取预印本可作无版权争议的补充源
- arXiv · 数据库方向最新预印本 https://arxiv.org/list/cs.DB/recent
完全开放,可批量取元数据 - 万方数据 · 检索结果页(关键词:数据采集) https://s.wanfangdata.com.cn/paper?q=数据采集
中文文献,可按年份/学科筛选 - 维普网 http://www.cqvip.com/
入口:首页检索框输入关键词;对自动化请求会返回 412,只讲原理 - 百度学术 · 学术检索 https://xueshu.baidu.com/
国内可直接访问,入口为首页检索框;聚合期刊、学位论文与专利,含被引量 - 国家哲学社会科学文献中心 https://www.ncpssd.org/
入口:首页检索框,免费开放的中文文献(需注册)
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | - | 采集时自动生成,从1开始 |
| 题名 | - | 保持原文,不要翻译或改写 |
| 作者 | authors | 多作者统一用中文分号分隔 |
| 作者机构 | - | 多单位时只取第一单位,其余另存 |
| 来源 | - | 缺就留空,不要填「未知」 |
| 发表年份 | year | 只要四位年份,便于排序统计 |
| 卷期页码 | - | 知网详情页有;没有就留空 |
| 关键词 | keywords | 多关键词用分号分隔 |
| 基金 | funding | 没有基金就留空,不要臆造编号 |
| 摘要 | abstract | 表格存前120字,完整摘要另存 |
| 被引量 | - | 数值来自知网,注明统计日期 |
| 下载量 | - | 数值来自知网,注明统计日期 |
| DOI/链接 | - | 写成可点击的完整地址 |
| 文献类型 | doc_type | 依页面公开的类型标注填写 |
- 领域研究热点图谱:按年份统计关键词频次变化,看热点迁移
- 核心期刊与高产作者:发文量排前列的期刊与作者
- 研究空白识别:把近年关键词与早期对比,找新兴议题
文献数据是研究者的刚需,也是「元数据与全文分开对待」这条合规界线的最佳教材:元数据(标题/作者/年份)可以采集用于计量分析,全文 PDF 不行。学生在这一案里学会区分「什么可以合法取、什么必须走图书馆授权」。
- 数据明细.xlsx(含 DOI、被引次数,可做文献计量)
- 数据明细.html(按年份/期刊筛选,摘要可展开)
- 数据看板.html(关键词云 + 年度发文量趋势 + 期刊分布)
- 文献清单文件(BibTeX / EndNote 可导入格式)
- 技能压缩包(文献元数据采集器,含摘要截断与去标签规则)
https://www.gov.cn/zhengce/
官方政策公开平台,列表 + 附件结构规整,含发文字号与成文日期
- 广东省人民政府 https://www.gd.gov.cn/zwgk/
省级政务公开 - 广州市人民政府 · 政务公开 https://www.gz.gov.cn/zwgk/
市级政务公开 - 教育部 · 信息公开专栏 http://www.moe.gov.cn/jyb_xxgk/
部委文件 - 国家统计局 · 数据公开 https://www.stats.gov.cn/sj/
统计数据公开
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | - | 采集时自动生成 |
| 标题 | - | 完整原文,不要截短 |
| 发文机关 | - | 取页面上标注的正式单位名 |
| 发文字号 | doc_no | 原样照抄含〔〕,没有就留空 |
| 成文日期 | issue_date | 统一成YYYY-MM-DD,与发布日期区分 |
| 发布日期 | publish_date | 有的文件成文与发布不同日 |
| 主题分类 | topic | 中国政网按主题分类,没有就留空 |
| 索引号 | - | 详情页常给出,作为唯一标识之一 |
| 正文链接 | url | 完整地址,可点开 |
| 附件名称 | attach_name | 多个用分号分隔 |
| 附件链接 | - | 只要pdf/doc/docx,多个用分号分隔 |
| 效力状态 | status | 现行有效/已废止,页面上有才填 |
- 政策台账:按发文机构与年度归集成可检索台账,带附件本地归档
- 政策热点时序:某领域文件出台密度的时间分布
- 中央与地方对照:同一议题中央文件与地方配套文件的发布时间差
政务数据是「合法、稳定、有现实价值」三者兼具的一类数据:它是政府主动公开的,采集几乎无争议;同时做出来的政策台账对写材料、做课题有真实用处。案例重点在附件的规范命名与归档——这一步做不好,几百份 PDF 会乱成一团。
- 数据明细.xlsx(政策台账 + 附件清单两个 Sheet)
- 数据明细.html(按机构/年度筛选,附件可点击)
- 数据看板.html(发文机构分布 + 年度出台量 + 主题分类)
- 技能压缩包(政务文件采集 + 附件规范归档)
https://yz.chsi.com.cn/zsml/
官方研招平台,专业目录与招生简章结构规整;部分数据以附件(PDF/Excel)发布,正好复用案例 03 的附件下载
- 中央机关及其直属机构考试录用公务员专题网站 http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/home/gkhome.html
国家公务员局主办的国考专题站,招考公告、职位表、报名与成绩查询都在这里;职位表为 Excel/PDF 附件(原 www.scs.gov.cn 官网已于 2026 年 8 月底下线) - 中国教育考试网 · 考试报名 https://www.neea.edu.cn/html1/folder/1607/298-1.htm
各类考试日程与公告 - 学信网 · 学历查询入口 https://www.chsi.com.cn/xlcx/index.jsp
学历学籍查询(需登录,只讲原理) - 广东省教育考试院 https://eea.gd.gov.cn/
入口:首页「招考公告 / 通知」栏目,省级考试日程都在这里
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 招录单位 | org | 以职位表原文为准,不要简写 |
| 招考年度 | year | 例如「2026年度考试录用公务员」 |
| 岗位名称 | title | 保持原文,含括号编号 |
| 岗位代码 | job_code | 官方唯一编号,用于定位岗位 |
| 招录人数 | headcount | 纯数字;为1的岗位竞争通常最激烈 |
| 专业要求 | major | 多个用分号分隔,需对照专业目录判断 |
| 学历要求 | education | 统一成「大专/本科/硕士/博士」口径 |
| 学位要求 | degree | 有的岗位只要求学历不要求学位,要分清 |
| 政治面貌 | political | 「不限」要照实写「不限」 |
| 基层工作年限 | work_years | 「无限制」记0;单位是「年」 |
| 工作地点 | location | 统一成「省+市」格式 |
| 报名时间 | apply_time | 统一成「YYYY-MM-DD」并保留区间 |
| 笔试时间 | exam_time | 统一成「YYYY-MM-DD」 |
| 其他条件 | other | 原文照录,没有就留空 |
| 采集日期 | fetch_date | 用于标注数据版本 |
- 「我能报的岗位」清单:按自己的专业 + 学历 + 学位筛出可报岗位
- 专业目录匹配:把岗位的「专业类」对照到具体专业,判断能否报考
- 竞争度预判:招录人数越少、限制越少的岗位竞争越大,做热度排序
- 备考日历:把报名、笔试、面试时间排成一张时间轴
这一案的独特之处是「职位表是附件」——真正的岗位数据藏在 Excel/PDF 里,要先下载再解析,正好复用案例 03 的附件下载能力;另一个难点是「专业目录匹配」,岗位写的是一级学科类,学生专业是二级学科,能不能报要建立映射表。这两步做通了,学生就真的能用数据帮自己做决策。
- 数据明细.xlsx(岗位清单 + 附件解析结果 + 专业匹配标记)
- 数据明细.html(按学历/专业/地区筛选,可报岗位高亮)
- 数据看板.html(招录单位分布 + 招录人数分布 + 招考年度对比)
- 备考日历(报名与笔试时间轴)
- 技能压缩包(职位表附件下载解析 + 专业目录匹配规则)
https://book.douban.com/tag/计算机
标签列表页 + 图书详情页;列表页有书名/作者/出版社/定价/评分,详情页才有译者/页数/ISBN/简介
- 当当图书 http://book.dangdang.com/
入口:首页左侧分类或检索框,含定价与销量榜 - 国家图书馆 · 馆藏检索(OPAC) http://opac.nlc.cn/
入口:检索框按书名/作者/ISBN 查馆藏,权威书目数据 - 孔夫子旧书网 · 图书检索 https://book.kongfz.com/
二手书行情 - 多抓鱼 · 图书检索(关键词:数据采集) https://www.duozhuayu.com/search/book/数据采集
二手书回收价与售价,可与新书定价对照 - 闲鱼 https://www.goofish.com/
入口:搜索框输入书名或关键词;需登录,只讲原理
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | - | 采集时自动生成 |
| 书名 | title | 含副标题的要完整 |
| 副标题 | subtitle | 没有就留空 |
| 作者 | author | 多作者用分号分隔 |
| 译者 | translator | 没有译者就留空,不要并入作者 |
| 出版社 | publisher | 统一取全称 |
| 出版年 | year | 只要四位年份 |
| 页数 | pages | 只要数字 |
| 定价 | price | 去掉货币符号,只留数字并保留两位小数 |
| 装帧 | - | 精装/平装,避免不同版本混采 |
| ISBN | isbn | 跨平台合并的唯一标识 |
| 评分 | rating | 保留一位小数,无评分留空 |
| 评价人数 | rating_count | 只要数字,无则留空 |
| 简介 | intro | 截断到前100字,去标签 |
| 详情页链接 | - | 完整可点开 |
- 出版社书目结构:哪家出版社在某类目下出版最活跃
- 高评分低评价数:找出「小众好书」用于推荐
- ISBN 跨源合并:把两个平台的同一本书按 ISBN 合并,做价格对比
图书数据自带一个天然主键 ISBN,是讲「跨源数据合并」最合适的素材——两个平台的字段名不一样、书名写法不一样,但 ISBN 一样,按它一合就对齐了。学生在这一案理解「唯一标识」在数据整合中的分量。
- 数据明细.xlsx(含 ISBN 与去重后书目)
- 数据明细.html(按出版社/年份筛选,评分排序)
- 数据看板.html(出版年分布 + 出版社 Top + 评分分布)
- 技能压缩包(图书两级采集 + ISBN 合并规则)
https://www.gsxt.gov.cn/index.html
官方工商登记信息公示平台,是最权威、最合规的数据源
- 天眼查 https://www.tianyancha.com/
入口:首页搜索框输入企业全称;有登录墙与风控,只讲原理 - 企查查 · 企业搜索(关键词:腾讯) https://www.qcc.com/web/search?key=腾讯
聚合平台,有登录墙,只讲原理 - 爱企查 · 企业搜索(关键词:腾讯) https://aiqicha.baidu.com/s?q=腾讯
百度旗下,公示信息聚合;脚本访问会跳风控页,浏览器打开正常
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | - | 采集时自动生成 |
| 企业名称 | name | 取完整全称,不要简称 |
| 统一社会信用代码 | uscc | 权威唯一标识,作为主键 |
| 法定代表人 | legal_person | 只记录公示姓名,不扩展其他个人信息 |
| 注册资本 | reg_capital | 由「1000万元人民币」换算而来 |
| 注册资本币种 | currency | 美元/港元等要单独标明 |
| 成立日期 | est_date | 统一成YYYY-MM-DD |
| 登记状态 | - | 存续/注销/吊销/其他 |
| 企业类型 | - | 照抄公示类型 |
| 注册地址 | address | 只作企业属性,不解析到个人 |
| 经营范围 | scope | 照抄公示文本 |
| 所属行业 | - | 取页面公开的分类标签 |
| 登记机关 | reg_authority | 照抄公示机关 |
- 区域企业结构:某市/某区的企业数量、行业分布、注册资本分布
- 企业存活分析:按成立年份看现存与注销的比例
- 供应链线索:按行业与注册资本筛选潜在合作方(教学演示)
这一案是整门课合规教育分量最重的一篇:企业公开登记信息可以采集,但自然人个人信息绝对不能碰,也不允许把法定代表人信息与个人隐私做关联。「什么能采、什么不能采」这条线,在这里必须讲透。
- 数据明细.xlsx(注册资本数值化 + 币种分列 + 行政区拆分)
- 数据明细.html(按行业/状态/年份筛选)
- 数据看板.html(行业分布 + 成立年份趋势 + 注册资本分档)
- 技能压缩包(工商公开信息采集 + 注册资本换算规则)
https://www.neea.edu.cn/html1/category/1508/151-1.htm
教育部教育考试院官方站,各类证书考试日程与公告集中发布,结构规整、无登录墙
- 全国大学生数学建模竞赛 https://www.mcm.edu.cn/
入口:首页「竞赛通知 / 赛题发布」,报名与赛程都在这里 - 蓝桥杯 https://dasai.lanqiao.cn/
入口:首页「报名 / 赛程」;深链会 404,一律从首页进 - 全国大学生创业服务网(中国国际大学生创新大赛报名平台) https://cy.ncss.cn/
教育部主办的中国国际大学生创新大赛官方报名平台,大赛通知与获奖名单也在此发布 - 中国大学 MOOC · 课程检索(关键词:数据采集) https://www.icourse163.org/search.htm?search=数据采集
证书课程与学习资源
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | - | 采集时自动生成 |
| 名称 | - | 保持官方全称 |
| 类别 | - | 二选一,便于分类查看 |
| 主办单位 | organizer | 以官方通知为准 |
| 级别 | level | 竞赛必填;证书考试可写「全国」 |
| 报名开始 | reg_start | 有就填,没有留空 |
| 报名截止 | reg_end | 本表最关键的列,用于排序与提醒 |
| 比赛时间 | contest_time | 统一成YYYY-MM-DD区间 |
| 参赛对象 | audience | 原文照录 |
| 报名网址 | url | 完整可点开 |
| 是否收费 | is_paid | 填「是/否/未知」,未知不要猜 |
| 证书类型 | cert_type | 考试类填证书名称,竞赛填获奖证书 |
| 成绩公布 | - | 只到月份就写到月份 |
| 来源 | - | 多来源合并时必须标注 |
- 「这一年别错过的报名截止表」:把所有赛事按截止日排序,做成提醒清单
- 参赛日历:导出成日历文件(.ics),重要节点自动提醒
- 赛事级别分布:国家级/省级/校级各占多少,哪些值得优先准备
- 免费与收费对比:哪些高含金量赛事其实免费
竞赛信息散落在几十个官网上,写法各不相同,真正难的是「日期格式统一」——「2026年3月」「3.15」「3月15日—4月10日」三种写法要归一到同一口径。做完这一案能交出一样实实在在的东西:一张按截止日期排序、还能导入手机日历的报考清单。
- 数据明细.xlsx(日期标准化列 + 级别与收费标记 + 来源列)
- 数据明细.html(按级别/截止日期筛选,来源可点击)
- 数据看板.html(赛事级别分布 + 月度赛程密度 + 免费占比)
- 日历文件 .ics(可直接导入手机/日历软件提醒)
- 技能压缩包(多来源赛事采集 + 日期格式归一规则)
https://you.ctrip.com/sight/guangzhou152.html
全课技术难点:内容由 JavaScript 渲染、滚动到底部继续加载;公开、无需登录,课堂可复现
- 小红书 · 探索页 https://www.xiaohongshu.com/explore
强登录墙,只讲原理与合规边界,不绕过登录、不做演示 - 哔哩哔哩(B 站)· 热门视频列表 https://www.bilibili.com/v/popular/all
滚动加载 + 接口化,大学生最常用 - 抖音 · 精选页 https://www.douyin.com/jingxuan
无限滚动 + 强风控 - 高德地图 · POI 搜索页(广州塔) https://www.amap.com/search?query=广州塔
地图瓦片 + 动态加载
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | - | 采集时自动生成 |
| 内容标题 | title | 取渲染后的可见文本 |
| 正文摘要 | - | 只取前80字,没有就留空 |
| 作者昵称 | author | 仅取公开昵称,不做身份关联 |
| 点赞数 | likes | 「1.2万」要换算成整数 |
| 收藏数 | collects | 「6420」保留整数 |
| 评论数 | comments | 纯数字,没有就留空 |
| 发布时间 | publish_time | 相对时间(「3天前」)要换算或注明 |
| 话题标签 | tags | 多个用分号分隔 |
| 详情链接 | - | 完整可点开 |
| 加载批次 | - | 用于判断有没有采全 |
| 失败截图 | - | 失败时用于排查 |
- 内容主题分布:某话题下作品的类型与热度分布(教学演示)
- 互动量分档:什么样的内容更容易获得高互动
- 动态页 vs 静态页对比:同一批数据两种采集方式的效率与稳定性差异
这一案回答一个学生必然遇到的问题:为什么我按 F12 看得到的内容,代码里却抓不到?答案是页面靠 JavaScript 在浏览器里现渲染。解决方案不是「破解」,而是让程序去驱动一个真实浏览器,等它渲染完再取。这一案同时也必须讲清登录墙与平台条款的边界。
- 数据明细.xlsx(含滚动轮次与失败截图文件名)
- 数据明细.html(内容卡片式浏览)
- 数据看板.html(互动量分布 + 话题标签排行)
- 技能压缩包(无头浏览器采集模板:滚动/点击/等待/重试/截图留证)
https://www.douyin.com/jingxuan
无限滚动 + 登录墙 + 强风控三件套齐全;未登录只能看有限内容,继续下滚会弹登录,课堂只讲原理与公开元数据采集
- 哔哩哔哩(B 站)· 热门视频列表 https://www.bilibili.com/v/popular/all
滚动加载 + 公开接口,可作对照 - 快手 · 精选 https://www.kuaishou.com/brilliant
动态渲染 + 风控 - 微信视频号 · 创作者服务(视频号助手) https://channels.weixin.qq.com/
网页端仅面向创作者登录,没有面向公众的视频浏览页;学生侧内容需在微信客户端内查看,本案例只作说明、不实操 - 小红书 · 探索页 https://www.xiaohongshu.com/explore
短视频社区,参考案例 09
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| 序号 | - | 采集时自动生成 |
| 视频文案 | - | 取页面显示的文案,不补全、不改写 |
| 作者昵称 | author | 仅取公开昵称 |
| 作者 ID | author_id | 取页面公开的ID,不推断真实身份 |
| 点赞数 | likes | 「10w+」要还原,并注明是估算值 |
| 评论数 | comments | 保留整数 |
| 收藏数 | collects | 没有该指标就留空 |
| 分享数 | shares | 没有就留空 |
| 发布时间 | pub_time | 相对时间(「3天前」)要换算或注明 |
| 时长 | duration | 统一成秒,便于比较 |
| 话题标签 | tags | 多个用分号分隔 |
| 背景音乐 | bgm | 照录页面显示的名称 |
| 视频链接 | url | 完整可点开 |
| 采集批次 | batch_id | 用于判断覆盖范围 |
- 话题内容画像:某话题下视频的时长、互动量、发布时段分布
- 热门 BGM 追踪:哪些背景音乐被用得最多
- 互动率对比:点赞/评论/分享比例的差异,反映不同内容的传播特征
- 时长分档:短视频(<30 秒)与长视频的互动量差异
短视频把动态网页采集的所有难点一次集齐:无限滚动、登录墙、强风控。这一案的教学重点有两个——技术上,理解「滚动加载」到底怎么工作;合规上,明确「平台公开数据不等于可以随意批量抓取」,要遵守 robots.txt 与用户协议,不下载视频文件、不采集直播间用户信息。
- 数据明细.xlsx(含采集批次与数字原始值列)
- 数据明细.html(卡片式浏览,可按时长/互动量排序)
- 数据看板.html(互动量分布 + 话题标签 Top + 时长分档)
- 技能压缩包(滚动加载采集模板 + 数字还原与风控识别规则)
https://www.gcut.edu.cn/xyxw_183/list.htm
把前 35 个案例的能力串成一个小项目:多源采集 → 统一字段 → 清洗去重 → 入库 → 看板 → 报告
- 天气网 · 广州历史天气 https://lishi.tianqi.com/guangzhou/202608.html
接口源:逐日气温、风向风力与 AQI,与校园新闻合并成一张宽表 - 国家统计局 · 数据查询 https://data.stats.gov.cn/easyquery.htm?cn=C01
作为背景数据对照;对脚本请求有反爬(403),浏览器打开正常
| 字段(中文) | 字段名 | 口径与清洗要点 |
|---|---|---|
| date | date | 统一成YYYY-MM-DD两个来源都按它对齐 |
| source | source | 固定值:校园新闻/历史天气 |
| source_type | source_type | 标记本行数据采自静态页还是数据接口 |
| category | category | 新闻取栏目,天气取天气现象 |
| title | title | 新闻取标题,天气取当日代表现象 |
| value | value | 新闻=当日新闻条数;天气=当日最高温 |
| value2 | value2 | 新闻与value相同;天气=当日最低温 |
| unit | unit | 新闻=条;天气=摄氏度 |
| extra | extra | 新闻=当日第一条新闻的栏目;天气=AQI |
| link | link | 新闻详情页地址或天气月页地址 |
| batch_id | batch_id | 格式为「日期_轮次序号」 |
| check_status | check_status | 取值为「字段齐全」或「缺关键字段」 |
| dedup_key | dedup_key | 本项目统一按「日期+来源」联合去重 |
| fetch_time | fetch_time | 采集当时的时间戳,精确到分钟 |
- 完整小项目:双源采集 → 字段映射 → 清洗去重 → SQLite 入库 → 图表 → 一页报告
- 可复现性验收:换一台电脑,按 README 能跑出同样的结果
- 结论提炼:每张图配一句人话结论,不许只放图不解释
前 35 案练的是零件,这一案练的是组装。学生必须面对真实工程里的问题:两个源的字段名不一样怎么对齐、同名不同义怎么处理、重跑一次会不会产生重复数据。做完这一案,才算真正具备「独立完成一个采集项目」的能力。
- 数据明细.xlsx(统一字段后的合并明细)
- 数据明细.html(多源合并视图,可按来源筛选)
- 数据看板.html(柱状图 / 折线图 / 饼图 + 一句话结论)
- SQLite 数据库文件 + 项目目录结构说明
- 交付说明 README(采集口径、字段字典、复现步骤、已知问题)
- 技能压缩包(从采集到看板的完整项目模板)