用于抓取雪球用户“启四说”(qisi / UID 9199129225)公开时间线与专栏正文,并输出可校验、可阅读、可继续分析的本地语料。
仓库只保留当前使用的核心链路、设计说明,以及最近一次完整抓取的可读结果。Cookie、浏览器登录目录、原始 API 响应、SQLite 数据库和重复的中间格式不会提交。
抓取时间:2026-05-27
- 抓取页数:196
- 去重后记录:3,745
- 专栏记录:1,360
- 专栏正文完整:1,360
- 完整性校验:通过
结果文件:
results/latest/timeline.md:最近一次抓取的可读时间线results/latest/analysis.md:基于该批语料生成的分析结果,内容可能存在模型推断错误results/latest/summary.json:抓取摘要results/latest/verification.md:完整性校验报告
推荐使用 Playwright 持久化浏览器登录态。脚本在浏览器页面上下文中请求雪球时间线 API,因此不需要手工复制 Cookie。
python -m pip install -r requirements.txt
python .\browser_qisi_scraper.py --fetch-articles也可以运行完整管道,依次完成抓取、分析分片导出和一致性校验:
.\run_qisi_pipeline.ps1 -Mode browser -FetchArticles -RequireComplete直接 API 模式适合调试。完整历史通常需要登录 Cookie:
$env:XUEQIU_COOKIE = '登录后的 Cookie'
python .\direct_qisi_scraper.py --fetch-articles不要把 Cookie 提交到 Git,也不要发送给第三方。
每次运行会在 output/ 下创建独立目录:
| 文件 | 用途 |
|---|---|
timeline_raw_pages.json |
原始分页响应 |
timeline_clean.jsonl |
标准化逐条语料 |
timeline_clean.md |
可阅读时间线 |
timeline.sqlite |
SQLite 数据库 |
summary.json |
抓取摘要 |
verification_report.* |
一致性与完整性报告 |
gemini/ |
大模型分析分片与提示词 |
output/ 是本地工作目录,不纳入版本控制。公开存档只从已校验的完整输出中挑选必要文件。
| 文件 | 作用 |
|---|---|
browser_qisi_scraper.py |
使用持久化浏览器登录态抓取完整历史 |
direct_qisi_scraper.py |
使用访客会话或显式 Cookie 直接请求 API |
export_for_gemini.py |
把 JSONL 拆成适合大模型处理的 Markdown 分片 |
verify_qisi_corpus.py |
校验记录数、分页、SQLite、专栏正文和分片 |
run_qisi_pipeline.ps1 |
串联抓取、导出与校验 |
详细设计见 DESIGN.md。
- 仅抓取有权访问的内容,并遵守目标站点条款、访问频率限制和适用法律。
- 默认加入请求延迟与随机抖动,避免高频访问。
results/latest/中的内容版权归原作者及对应平台所有,仅作为抓取结果存档和技术验证。analysis.md是自动生成的研究材料,不构成投资建议。
代码使用 MIT License。抓取内容不适用该代码许可证。