Crypto Market Quotes
实时获取比特币、以太坊等主流币种的行情数据,支持多平台查询。
持续抓取Finviz财经新闻,本地存储并支持查询与AI摘要。
openclaw skills install @camopel/finviz-crawler命令、参数、文件名以原文为准
📰 构建属于你自己的金融新闻数据库 —— 多数金融类技能仅提供一次性 API 查询。本技能持续运行,自动归档 Finviz 上的每一条新闻标题与文章内容。可随时查询历史数据,无 API 调用限制,不丢失任何信息。
🆓 无需 API 密钥,无需订阅 —— 直接通过 Crawl4AI + RSS 抓取 finviz.com 内容。自动提取 Bloomberg、Reuters、Yahoo Finance、CNBC 等来源的文章,完全免费。
🤖 专为 AI 摘要设计 —— 查询工具输出结构清晰的文本或 JSON,适合 LLM 进行摘要处理。搭配 OpenClaw 定时任务,可实现每日晨间简报、晚间总结或每周投资摘要的自动化生成。
💾 自动清理机制 —— 可配置过期策略,自动删除数据库和磁盘中的旧文章。设置 --expiry-days 30 可保留一个月的历史数据,设为 0 则永久保存。
🔄 守护进程架构 —— 作为后台服务运行,随 OpenClaw 启动/停止。安装后无需手动干预。支持 systemd(Linux)和 launchd(macOS)。
python3 scripts/install.py兼容 macOS、Linux 和 Windows。自动安装 Python 依赖包(crawl4ai、feedparser),配置 Playwright 浏览器,创建数据目录,并进行完整性验证。
pip install crawl4ai feedparser
crawl4ai-setup # 或:python -m playwright install chromium# 默认:~/workspace/finviz/,7天过期
python3 scripts/finviz_crawler.py
# 自定义路径与参数
python3 scripts/finviz_crawler.py --db /path/to/finviz.db --articles-dir /path/to/articles/
# 保留30天的文章
python3 scripts/finviz_crawler.py --expiry-days 30
# 不自动删除(永久保存)
python3 scripts/finviz_crawler.py --expiry-days 0
# 自定义抓取间隔(默认:300秒)
python3 scripts/finviz_crawler.py --sleep 600# 最近24小时的新闻标题
python3 scripts/finviz_query.py --hours 24
# 仅返回标题(简洁格式,适合 LLM 摘要)
python3 scripts/finviz_query.py --hours 12 --titles-only
# 包含完整文章内容
python3 scripts/finviz_query.py --hours 12 --with-content
# 列出已下载的文章及其内容状态
python3 scripts/finviz_query.py --list-articles --hours 24
# 查看数据库统计信息
python3 scripts/finviz_query.py --stats# 列出所有跟踪的股票代码
python3 scripts/finviz_query.py --list-tickers
# 添加单个股票代码(自动根据代码生成关键词)
python3 scripts/finviz_query.py --add-ticker NVDA
# 自定义关键词
python3 scripts/finviz_query.py --add-ticker "NVDA:nvidia,jensen huang"
# 批量添加多个股票代码
python3 scripts/finviz_query.py --add-ticker NVDA TSLA AAPL
python3 scripts/finviz_query.py --add-ticker "NVDA:nvidia,jensen" "TSLA:tesla,elon musk"
# 批量移除股票代码
python3 scripts/finviz_query.py --remove-ticker NVDA TSLA
# 指定自定义数据库路径
python3 scripts/finviz_query.py --list-tickers --db /path/to/finviz.db股票代码存储在 finviz.db 数据库的 tickers 表中,爬虫每次运行时会读取该表以确定需要抓取哪些股票页面。
| 设置 | 命令行参数 | 环境变量 | 默认值 |
|---|---|---|---|
| 数据库路径 | --db | — | ~/workspace/finviz/finviz.db |
| 文章存储目录 | --articles-dir | — | ~/workspace/finviz/articles/ |
| 抓取间隔 | --sleep | — | 300(5分钟) |
| 文章过期天数 | --expiry-days | FINVIZ_EXPIRY_DAYS | 7 天 |
| 时区 | — | FINVIZ_TZ 或 TZ | 系统默认 |
安装本技能后,代理将识别 /finviz 为快捷指令:
| 命令 | 动作 |
|---|---|
/finviz list | 显示已跟踪的股票代码 |
/finviz add NVDA, TSLA | 添加股票代码进行跟踪 |
/finviz remove NVDA | 移除某个股票代码 |
/finviz stats | 显示文章与股票代码数量统计 |
/finviz help | 显示可用命令列表 |
代理内部通过 finviz_query.py CLI 执行这些操作。
配套的移动端仪表板可在 [PrivateApp](https://github.com/camopel/PrivateApp) 中获取 —— 一个部署于家庭服务器上的个人 PWA 仪表板。
Finviz 应用 提供:
安装 PrivateApp 后,Finviz 仪表板即内置其中,无需额外配置。
爬虫守护进程(finviz_crawler.py):
查询工具(finviz_query.py):
[Unit]
Description=Finviz News Crawler
[Service]
ExecStart=python3 /path/to/scripts/finviz_crawler.py --expiry-days 30
Restart=on-failure
RestartSec=30
[Install]
WantedBy=default.target<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>com.finviz.crawler</string>
<key>ProgramArguments</key>
<array>
<string>python3</string>
<string>/path/to/scripts/finviz_crawler.py</string>
<string>--expiry-days</string>
<string>30</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
</dict>
</plist>~/workspace/finviz/
├── finviz.db # SQLite:文章 + 股票代码(单个数据库)
├── articles/ # 文章全文以 .md 文件形式存储
│ ├── market/ # 市场综合新闻标题
│ ├── nvda/ # 单个股票的文章
│ └── tsla/
└── summaries/ # LLM 摘要缓存(.json 文件)与 OpenClaw 定时任务配合,实现自动化摘要推送:
计划:0 6 * * * (每日早上 6 点执行)
任务:查询过去 24 小时内容 → 使用 LLM 生成摘要 → 推送至 Matrix/Telegram/Discord已收录 1 个 Skill