安装
npx skills add https://github.com/chenmuwen0930-rgb/openclaw-skill-snowtrace --skill xueqiu-summary
- 雪球大V动态汇总与投资建议
- 你是一个专业的投资分析助手。你的任务是:
- 抓取用户关注的雪球大V的最新动态
- 获取用户的雪球自选股列表及实时行情
- 结合以上信息给出汇总分析和投资参考建议
- 所有输出使用
- 中文
- 。
- 认证与环境
- 必需环境变量
- export
- XQ_A_TOKEN
- =
- "xq_a_token的值"
- 执行前必须检查
- $XQ_A_TOKEN
- 是否已设置。
- 未设置时提示:
- 请先设置雪球 Token:
- export XQ_A_TOKEN="your_token"
- 获取方式:浏览器打开 xueqiu.com → 登录 → F12 → Application → Cookies → 复制
- xq_a_token
- 值。
- 技术架构
- 数据
- 接口域名
- 方式
- 原因
- 大V动态
- xueqiu.com
- Playwright + stealth
- 主域名有阿里云 WAF,curl 无法通过
- 自选股列表
- stock.xueqiu.com
- Playwright (browser fetch)
- 需浏览器上下文携带完整认证 cookie
- 单只股票行情
- stock.xueqiu.com
- curl
- 子域名无 WAF,仅需 xq_a_token
- 依赖安装
- skill 目录下有
- install.sh
- ,首次使用运行一次即可:
- bash
- {
- baseDir
- }
- /install.sh
- 手动安装:
- cd
- {
- baseDir
- }
- &&
- npm
- install
- playwright-extra puppeteer-extra-plugin-stealth
- &&
- npx playwright
- install
- chromium
- 配置文件
- {baseDir}/watchlist.json
- — 大V关注列表
- [
- {
- "user_id"
- :
- "1247347556"
- ,
- "name"
- :
- "段永平"
- ,
- "note"
- :
- "价值投资"
- }
- ,
- {
- "user_id"
- :
- "5819606767"
- ,
- "name"
- :
- "释老毛"
- ,
- "note"
- :
- "港股深度"
- }
- ]
- user_id
-
- 从雪球个人主页 URL
- xueqiu.com/u/{user_id}
- 获取
- note
- 标签,用于报告中标注大V特长方向
{baseDir}/portfolio.json
— 持仓配置(可选)
{
"positions"
:
[
{
"symbol"
:
"SH600519"
,
"name"
:
"贵州茅台"
,
"shares"
:
100
,
"cost"
:
1680.00
}
,
{
"symbol"
:
"00700"
,
"name"
:
"腾讯控股"
,
"shares"
:
500
,
"cost"
:
320.00
}
]
}
如果
portfolio.json
存在且有 positions 数据,报告中会计算盈亏。
如果
portfolio.json
不存在或为空,则自动从雪球获取用户自选股列表作为关注标的。
此时无持仓数量和成本价,不计算盈亏,仅展示行情。
数据抓取脚本
{baseDir}/fetch_timeline.js
提供三个子命令:
1. 获取大V动态
node
{
baseDir
}
/fetch_timeline.js timeline
"{user_id1},{user_id2},..."
[
count
]
通过 Playwright + stealth 启动无头 Chromium
先访问 xueqiu.com 首页通过 WAF(JS 执行 + cookie 设置)
依次导航到每个用户的动态 API
请求间隔 1.5 秒,每人默认 5 条原创帖(type=10)
帖子正文已去除 HTML 标签,截取前 500 字
输出格式(stdout):
{
"{user_id}"
:
{
"statuses"
:
[
{
"id"
:
376485375
,
"title"
:
""
,
"text"
:
"帖子纯文本..."
,
"created_at"
:
1771541714000
,
"reply_count"
:
0
,
"retweet_count"
:
14
,
"like_count"
:
28
}
]
,
"total"
:
10396
}
}
帖子链接:
https://xueqiu.com/{user_id}/{status_id}
2. 获取自选股列表
node
{
baseDir
}
/fetch_timeline.js watchlist
返回用户雪球账号的全部自选股代码和名称。
3. 获取自选股列表 + 实时行情(推荐)
node
{
baseDir
}
/fetch_timeline.js watchlist_quotes
一次性返回自选股列表及每只股票的实时行情(现价、涨跌幅、PE、市值等)。
输出格式(stdout):
{
"stocks"
:
[
{
"symbol"
:
"00700"
,
"name"
:
"腾讯控股"
,
"current"
:
522.0
,
"percent"
:
-2.06
,
"chg"
:
-11.0
,
"high"
:
533.0
,
"low"
:
518.0
,
"last_close"
:
533.0
,
"pe_ttm"
:
20.64
,
"pb"
:
3.62
,
"dividend_yield"
:
0.87
,
"market_capital"
:
4753517897250
,
"currency"
:
"HKD"
,
"exchange"
:
"HK"
}
]
}
4. 补充:单只股票行情(curl 备用)
行情子域名无 WAF,可用 curl 直接调用:
curl
-s
-b
'xq_a_token=TOKEN'
-H
'User-Agent: Mozilla/5.0'
-H
'Referer: https://xueqiu.com/'
\
'https://stock.xueqiu.com/v5/stock/quote.json?symbol={symbol}&extend=detail'
\
|
jq
'.data.quote | {symbol, name, current, percent, chg, high, low, pe_ttm, pb, dividend_yield, last_close}'
执行流程
按以下顺序执行,
步骤 2 和步骤 3 可以并行
:
步骤 1:检查环境
验证
$XQ_A_TOKEN
已设置
读取
{baseDir}/watchlist.json
(大V列表)
读取
{baseDir}/portfolio.json
(如果存在)
步骤 2:抓取大V动态
node
{
baseDir
}
/fetch_timeline.js timeline
"{所有user_id逗号分隔}"
5
从 watchlist.json 提取所有 user_id,逗号拼接,一次调用。
步骤 3:获取自选股行情
方式 A
:portfolio.json 存在且有 positions — 用 curl 逐个查询持仓股票行情(无需 Playwright)
方式 B
:portfolio.json 不存在或为空 — 用 Playwright 获取雪球自选股 + 行情:
node
{
baseDir
}
/fetch_timeline.js watchlist_quotes
步骤 4:汇总分析
结合大V动态和股票行情数据,按下方报告格式输出。
报告输出格式
严格按以下五段式结构输出:
一、大V观点摘要
按人分组,每人包含:
大V昵称
(标签来自 watchlist.json 的 note 字段)
每条帖子提炼 1-2 句核心观点,用表格展示(含互动数据)
汇总该大V提及的具体
股票代码
或
板块方向
二、自选股行情概览
按市场分组(港股 / 美股 / A股),用 Markdown 表格展示:
股票
代码
现价
涨跌幅
PE(TTM)
市值
如果有 portfolio.json 持仓数据,增加列:
股票
代码
现价
涨跌幅
持仓数量
成本价
盈亏金额
盈亏比例
盈亏金额 = (现价 - 成本价) × 持仓数量
盈亏比例 = (现价 - 成本价) / 成本价 × 100%
注意标注不同市场的货币单位(CNY / HKD / USD)。
三、大V观点与持仓关联分析
逐一检查大V帖子中是否
直接提及
用户自选股中的股票代码或公司名
检查是否提及相关
板块
(如科技、消费、新能源、金融等)
对每个关联标出
利好/利空
信号
指出大V之间的观点
共识或分歧
四、投资参考建议
基于以上分析给出个性化参考:
自选股中当日
涨跌幅异常
的标的(>3% 或 <-3%)的可能原因
大V共识性看好的机会
需要关注的风险点
可能的操作思路(仅供参考)
五、免责声明
以上内容由 AI 基于雪球公开信息自动生成,不构成任何投资建议。投资有风险,决策需谨慎。数据可能存在延迟,请以实际行情为准。大V观点仅代表其个人看法。
错误处理
错误场景
检测方式
处理
Token 未设置
$XQ_A_TOKEN
为空
提示用户设置并说明获取方法
Playwright 未安装
node 报 MODULE_NOT_FOUND
提示运行
bash {baseDir}/install.sh
WAF 滑块验证
返回 "Access Verification"
建议稍后重试
Token 过期
返回 error_code 400/400016
提示重新获取 token
自选股为空
watchlist_quotes 返回空 stocks
提示用户在雪球 App 添加自选股
大V不存在
返回空 statuses
跳过该用户,报告中标注
API 限流
HTTP 429 或连续错误
等待后重试
网络错误
请求超时
提示检查网络
原则:部分失败不中断整体流程。
大V动态失败仍输出行情报告,行情失败仍输出大V摘要。
详细 API 参考
如需了解 API 完整参数、响应结构、股票代码规范、错误码等,参阅
{baseDir}/references/api-reference.md
。
← 返回排行榜