360 Secure SkillHub
360 安全技能中心

xueqiu-collector

该 Skill 通过浏览器自动化采集指定雪球用户的全部帖子,支持增量更新、正文补采、图片下载与 OCR,并用本地规则引擎分析帖子类型、投资相关性、情感、操作意图、主题和质量,结果存入 SQLite 并导出 JSON 与 Markdown。

zhangjia-ie
zhangjia-ie
热度 43.67
最近更新 2026-05-18 11:42:39
分类:数据依赖:代码执行 / 联网浏览搜索 / 读写文件应用场景:数据处理 / 社交媒体 / 财务 / 研究 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add xueqiu-collector
Metadata
name
xueqiu-collector
version
1.0.0
description
雪球帖子全量采集 Skill。采集任意雪球用户的全部帖子(含完整正文、图片下载、OCR识别), 自动做 V4 规则分析(帖子类型/投资相关性/情感/操作意图/主题标签/质量评分), 结果存入 SQLite 数据库并导出 JSON + Markdown 备份。 触发词:采集雪球、雪球帖子采集、爬取雪球、收集雪球、雪球用户数据、雪球投资记录、 雪球全量采集、抓取雪球帖子、同步雪球数据、xueqiu、下载雪球、雪球增量采集 适用场景: - 用户说"帮我采集某人的雪球帖子" - 用户说"同步/更新雪球数据" - 用户说"抓取雪球用户帖子" - 用户说"雪球有新帖,更新一下"
read_when
["用户需要采集雪球帖子","用户需要分析雪球用户数据","涉及雪球爬取、采集、同步操作"]

xueqiu-collector — 雪球帖子采集 Skill

功能概述

本 Skill 可以采集任意雪球用户的全部帖子,包括:

  1. 全量/增量采集 — 自动判断采集模式(首次全量,后续增量)
  2. 完整正文提取 — 含 Markdown 格式化、blockquote 评论识别
  3. 图片处理 — 下载帖子图片并 OCR 识别内容(winocr/tesseract)
  4. V4 规则分析 — 零 token 消耗,采集即分析:
    • 帖子类型(原创/评论/错误/空内容)
    • 投资相关性(high/medium/low/none)
    • 情感分析(看多/看空/中性)
    • 操作意图(买入/卖出/持有/观察)
    • 主题标签(估值分析/财务分析/操作记录…)
    • 质量评分(1-5分)
  5. 数据导出 — SQLite 数据库 + JSON + Markdown(全量及按分类)

前置依赖

依赖项 说明
playwright-cli (npx) 浏览器自动化,用于页面采集
Edge 浏览器 + 真实 Profile 挂载登录态,避免触发验证码
Python 3.10+ 运行采集脚本
winocr(可选) Windows 系统内置 OCR,识别帖子图片文字
SQLite 数据持久化,系统内置无需安装

快速开始

# 0. 环境检测(首次使用必跑!)
py scripts/check_env.py

# 1. 首次运行(不传参数,自动进入配置向导)
py scripts/collect.py
# → 会引导输入昵称和 URL

# 2. 增量采集(推荐,直接传参跳过向导)
py scripts/collect.py --author "用户昵称" --url "https://xueqiu.com/u/7712999844"

# 2. 强制扫描列表找新帖
py scripts/collect.py --author "用户昵称" --url "https://xueqiu.com/u/7712999844" --refresh-list

# 3. 强制重采正文(不重爬列表)
py scripts/collect.py --author "用户昵称" --url "https://xueqiu.com/u/7712999844" --force-collect

# 4. 只采集最新10条
py scripts/collect.py --author "用户昵称" --url "https://xueqiu.com/u/7712999844" --force-collect --latest --limit 10

# 5. 批量规则分析(对已采集的帖子补做V4分析)
py scripts/analyze.py --db "path/to/db.db" --missing

SOP(标准操作流程)

场景一:首次采集某用户的全部帖子

用户说:"帮我采集 @随缘的人生体验 的全部雪球帖子"

步骤:

  1. 确认用户昵称和主页 URL(可从 https://xueqiu.com/u/{UID} 格式获取)
  2. 确认数据库路径(默认:项目 db/stock_analysis.db)
  3. 确认输出目录(默认:项目 data/xueqiu/{昵称}/)
  4. 运行:py scripts/collect.py --author "昵称" --url "URL" --db "db路径" --out-dir "输出路径"
  5. 等待采集完成,报告统计数据

场景二:增量更新(常规日常任务)

用户说:"同步一下雪球数据" / "雪球有新帖,更新一下"

步骤:

  1. 检查已知配置(从记忆中读取上次的 author + url)
  2. 直接运行增量采集:py scripts/collect.py --author "昵称" --url "URL" --refresh-list
  3. 报告新增帖子数量

场景三:补充采集正文

用户说:"有些帖子只有标题没有正文,帮我补全"

步骤:

  1. 运行:py scripts/collect.py --author "昵称" --url "URL"(默认只采集缺正文的帖子)
  2. 报告补全数量

场景四:对历史帖子做 V4 规则分析

用户说:"帮我分析一下数据库里的帖子"

步骤:

  1. 运行:py scripts/analyze.py --db "db路径" --missing(只分析未分析的)
  2. 或全量重分析:py scripts/analyze.py --db "db路径" --batch

配置说明

路径配置(collect.py 参数)

参数 说明 示例
--author 用户昵称(用于数据目录隔离) 随缘的人生体验
--url 雪球主页 URL https://xueqiu.com/u/7712999844
--db SQLite 数据库路径 db/stock_analysis.db
--out-dir 数据输出根目录 data/xueqiu
--npx npx 可执行路径 C:\Users\xxx\nodejs\npx.cmd
--edge-profile Edge Profile 路径 C:\Users\xxx\AppData\Local\Microsoft\Edge\User Data\Default

反爬虫配置(内置默认值)

参数 默认值 说明
MIN_DELAY 2.0 秒 最小请求间隔
MAX_DELAY 5.0 秒 最大请求间隔
MAX_RETRIES 3 最大重试次数
stop_on_no_new 3 连续 N 页无新帖停止

输出格式

data/xueqiu/{昵称}/
  ├── posts_full.json          全量 JSON(所有帖子,时间倒序)
  ├── posts_full.md            全量 Markdown
  ├── classified/              按分类的 JSON 文件
  │   ├── 腾讯控股.json
  │   ├── 操作日记.json
  │   └── ...
  ├── md/                      按分类的 Markdown 文件
  │   ├── 腾讯控股.md
  │   └── ...
  └── images/                  帖子图片
      ├── 382580032_1.jpg
      └── ...

数据库表结构(xueqiu_posts)

字段 类型 说明
post_id TEXT 雪球帖子 ID
author TEXT 作者昵称
author_id TEXT 作者 UID
title TEXT 帖子标题
content TEXT 列表页摘要
full_content TEXT 完整正文(Markdown 格式)
category TEXT 分类(腾讯控股/操作日记/宏观分析…)
published_at TEXT 发帖日期(YYYY-MM-DD)
url TEXT 帖子链接
like_count INTEGER 点赞数
comment_count INTEGER 评论数
repost_count INTEGER 转发数
read_count TEXT 阅读数(含"万"等单位)
image_ocr_text TEXT 图片 OCR 识别内容
post_type TEXT 帖子类型(original/reply/error/empty)
own_text TEXT 评论帖中用户自己的话
quote_text TEXT 评论帖引用的原文
reply_to_post_id TEXT 评论指向的原帖 ID
investment_relevance TEXT 投资相关性(high/medium/low/none)
sentiment TEXT 情感(看多/看空/中性)
trade_intent TEXT 操作意图(买入/卖出/持有/观察/无)
content_type TEXT 内容类型(交易记录/数据分析/深度分析/讨论交流…)
quality_score INTEGER 质量评分(0-5)
summary TEXT 规则摘要(前300字)
topics TEXT 主题标签(JSON 数组)
tags TEXT 提及股票(JSON 数组)
word_count INTEGER 正文字数

注意事项

  1. 浏览器登录态:首次运行会自动启动 Edge 并导航到目标页面,需确保已登录雪球
  2. 采集速度:内置随机延迟,每条正文 2-5 秒,每20条强制休息 8-12 秒
  3. 日志监控:采集日志保存到 logs/xueqiu_collect.log,可用 py read_log.py 监控
  4. OCR 支持:需要安装 winocr + pillow(pip install winocr pillow)
  5. 分类关键词:可在 references/category_keywords.json 中自定义股票/主题分类规则

踩坑经验

  • playwright-cli eval 只支持单行 JS,多行会导致序列化失败
  • 雪球列表页时间格式多变(昨天/前天/X天前/X小时前/MM-DD/YYYY-MM-DD),已全部处理
  • 评论帖有三种格式(A/B/C),xueqiu_analyzer.py 已全部覆盖
  • Edge Profile 路径含空格时,必须用 Python subprocess 列表方式传参,不能字符串拼接
  • CMD 中文路径会乱码,所有含中文路径的启动器必须用 PowerShell + UTF-8