关于 apify-financial-news
apify-financial-news 是一项面向投资组合公司的金融新闻检索与提取技能,适用于按公司或组合开展新闻扫描。它通过分级来源发现新闻,并按域名将文章分配给指定提取器。
主要功能
- 01单公司与投资组合扫描
- 02按区域选择新闻来源
- 03Google News 两阶段发现
- 04Tier 1 与 Tier 2 来源分类
- 05按域名路由文章提取
- 06清理文章内容并输出表格
适用场景
- 01追踪单家投资组合公司的新闻
- 02批量扫描多个公司的新闻
- 03补充中东欧国家宏观背景
MCP 相关
可通过 Apify MCP connector 的 `call-actor` 工具运行 Apify Actors;技能也优先支持 Apify CLI。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ apify/ awesome-skills --skill apify-financial-news安装后在 Claude Code 中输入/apify-financial-news确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
data/sources.jsonreference/EUROPEAN_COMPANIES_GUIDE.mdMACRO_SOURCES.mdMORNING_NOTE_DETAIL.mdPIPELINE_DETAIL.mdSOURCE_CONFIGS.mdreference/scripts/clean_article.pyextract_and_clean.py详细介绍
金融新闻情报
通过 Apify Actors 发现并提取投资组合公司相关的金融新闻。提供两种模式:
- 单家公司 — 扫描一家公司的新闻。
- 投资组合扫描 — 在多家公司上运行同一套流程。
33 个一级来源分为 4 个类别(全球/泛欧洲/机构/中东欧本地)。二级来源是覆盖面广的 Google News 回退选项,用于未经验证的域名。
预计费用:单家公司 0.10–0.50 美元,完整投资组合扫描 1–5 美元。
先决条件
- Apify 访问权限 — 首选:
apifyCLI(npm install -g apify-cli && apify login);备用:Apify MCP 连接器(call-actor工具)。两者都可用时,CLI 更快且优先使用。 - Python 3 +
pip install readability-lxml lxml(用于extract_and_clean.py后处理器) - 公司数据位于
${CLAUDE_PLUGIN_ROOT}/data/companies.json
${CLAUDE_PLUGIN_ROOT} 是插件的根目录(即 .claude-plugin/ 所在目录)。安装插件后,Claude Code 会自动解析该路径;开发期间则将其设为 --plugin-dir 路径。
工作流检查清单
复制此清单,并在进行过程中勾选:
Task Progress:
- [ ] Step 0: Verify prerequisites — try `apify --version && apify info`; if unavailable, check for `call-actor` MCP tool; if neither, tell user to install apify CLI or Apify MCP connector. Also verify: `python3 -c "from readability import Document; print('OK')"` (install: `pip install readability-lxml lxml`)
- [ ] Step 1: Build queries (look up company in data/companies.json or construct manually)
- [ ] Step 2: Discovery — pick 8-12 sources by region, run 2-phase Google News
- [ ] Step 3: Dedup + route (Tier 1 = whitelisted domain → verified extractor; Tier 2 = broad → rag-web-browser)
- [ ] Step 4: Extract & clean (run extractor, then extract_and_clean.py)
- [ ] Step 5: Output Tier 1 + Tier 2 tables to user
限制
允许使用的 Apify Actors(完整列表——请勿使用其他 Actor)
| Actor | 用途 |
|---|---|
data_xplorer/google-news-scraper-fast | Google News 发现 |
louvre/rss-news-aggregator | RSS 发现 |
rodrigo_pacelli/headline-news-scraper | 标题发现 |
jamie_tran/bloomberg-article-scraper | Bloomberg 提取 |
romy/bloomberg-news-scraper | Bloomberg 备用方案 |
workhard3000/news-intelligence-rag-extractor | 付费墙内容提取 |
apify/rag-web-browser | 免费内容/软付费墙 + 二级来源 |
stanvanrooy6/universal-ai-web-scraper | 硬付费墙(Barron's、MarketWatch)— 每页 0.25 美元 |
请勿使用任何其他 Actor。请勿使用 WebSearch、WebFetch 或浏览器工具。
提取器路由(必须遵循——请勿替换)
| 提取器 | 域名 |
|---|---|
jamie_tran/bloomberg-article-scraper | bloomberg.com |
workhard3000/news-intelligence-rag-extractor | ft.com、wsj.com、economist.com、morningstar.com、asia.nikkei.com、caixinglobal.com、zawya.com、euobserver.com、reuters.com |
apify/rag-web-browser | cnbc.com、forbes.com、investors.com、lesechos.fr、afr.com、scmp.com、euronews.com、intellinews.com、handelsblatt.com、politico.eu、eubusiness.com、eureporter.co、ecb.europa.eu,以及全部 7 个中东欧本地来源 |
stanvanrooy6/universal-ai-web-scraper | barrons.com、marketwatch.com |
| REST API (presscorner) | ec.europa.eu |
各来源的完整配置:reference/SOURCE_CONFIGS.md。机器可读配置:data/sources.json。
流程
步骤 1:构建查询
在 ${CLAUDE_PLUGIN_ROOT}/data/companies.json 中查找公司。queries 下的关键字段:gnews_en、gnews_cz、bloomberg。
对于非投资组合公司,请手动构建查询:加引号的完整法定名称 + 股票代码或变体 + 地理限定词。
查询规则:
- 使用
"InPost SA",而非InPost(完整名称加引号可避免误报——参见 reference/EUROPEAN_COMPANIES_GUIDE.md) - 每个来源使用
site:运算符:site:bloomberg.com "InPost SA" OR "INPST" - FT 提示:使用
site:ft.com/content/(仅用ft.com会返回股票数据页面) - 有效时间范围:
"1h"、"1d"、"7d"、"1y"、"all"(不要使用"30d") - 股票代码少于 4 个字符时:务必搭配公司全名
- 在 Google News 输入中务必设置
decodeUrls: true
步骤 2:发现
不要搜索全部 33 个来源。根据公司所在地区选择 8–12 个来源。
区域优先级
| 区域 | 优先来源 |
|---|---|
| CZ | ČTK、IntelliNews、Reuters、Bloomberg、POLITICO EU、FT、Handelsblatt |
| PL | PAP、IntelliNews、Reuters、Bloomberg、POLITICO EU、FT |
| HU | Telex.hu、HVG.hu、VG.hu、IntelliNews、Reuters、Bloomberg |
| BG | BTA、IntelliNews、Reuters、Bloomberg、Euronews |
| SK | TASR、IntelliNews、Reuters、Bloomberg、Handelsblatt |
| 西欧 | Bloomberg、Reuters、FT、Handelsblatt、Les Echos、POLITICO EU |
| 美国 / 全球 | Bloomberg、Reuters、WSJ、FT、CNBC、Forbes、Barron's |
| 亚洲 / 中东和北非 | Bloomberg、Reuters、SCMP、Nikkei、Caixin、Zawya |
| 欧盟监管 | POLITICO EU、EUobserver、EUbusiness、EU Reporter、EC Press Corner、ECB |
两阶段 Google News 策略
阶段 1 — 定向(按优先来源搜索,使用 site:):
apify call data_xplorer/google-news-scraper-fast \
--input '{"keywords":["site:bloomberg.com \"InPost SA\" OR \"INPST\""],"maxArticles":10,"timeframe":"7d","region_language":"US:en","decodeUrls":true,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}}' \
--user-agent apify-awesome-skills/apify-financial-news \
--output-dataset > discovery_bloomberg.json
阶段 2 — 广泛(始终运行,不使用 site: 运算符)。在步骤 3 中按域名对结果分类——白名单来源 → Tier 1,其他来源 → Tier 2。
中东欧本地语言发现:对于中东欧公司,使用 region_language 设置为 CZ:cs、PL:pl、HU:hu、BG:bg、SK:sk 运行额外查询。参见 data/sources.json 中每个来源的 region_language 字段。
EC Press Corner — 直接 REST API(无需 Actor)
curl -s "https://ec.europa.eu/commission/presscorner/api/documents?reference=IP/26/614&language=en"
从 Google News 标题中解析 IP_XX_NNN 参考 ID,以构造 API 调用。
RSS / 标题发现(可选)
对于提供 RSS 的来源,可以使用 louvre/rss-news-aggregator 补充 GNews(每次运行最多 10 个 Feed;分批运行)。对于 6 个来源,可使用 rodrigo_pacelli/headline-news-scraper(CNBC、SCMP、Nikkei、Caixin、仅 Zawya 标签页、Handelsblatt)。RSS/标题输出未经筛选——在客户端按标题 / 描述中的公司名称进行筛选。完整 Feed 列表:reference/PIPELINE_DETAIL.md。
步骤 3:去重并路由
- 收集所有发现任务中的 URL。
- 按域名分类:白名单(33 个 Tier 1 来源)→ Tier 1;其他来源 → Tier 2。
- 筛除非文章 URL:
/quote/、/stock/、/sitemap、/author/、/tag/、/key-metrics/、/newsletters/、/topic/、/profile/、redirectUrl=。 - 根据标题中的公司名称 / 股票代码筛选。
- 去重(规范化 URL)。
- 根据路由表将 Tier 1 URL 路由至已验证的提取器。
- 将 Tier 2 URL 路由至
apify/rag-web-browser。
低覆盖率回退(< 3 篇文章):将时间范围扩大至 "1y";如果跳过了阶段 2,则运行阶段 2;尝试本地语言查询。
步骤 4:提取并清理
根据路由表运行提取器。对于 rag-web-browser 调用,使用 outputFormats: ["html"]。
提取后,在数据集上运行 extract_and_clean.py,通过 readability-lxml 移除导航栏 / 菜单 / 页脚。脚本会自动检测格式:HTML 使用 readability-lxml 清理;已清理的输出(Bloomberg scraper、workhard3000)则直接通过。
DATASET_ID=$(apify call apify/rag-web-browser \
--input '{"query":"<ARTICLE_URL>","maxResults":1,"outputFormats":["html"],"requestTimeoutSecs":40,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]},"removeCookieWarnings":true}' \
--user-agent apify-awesome-skills/apify-financial-news \
--json | jq -r '.defaultDatasetId')
python3 ${CLAUDE_PLUGIN_ROOT}/skills/apify-financial-news/reference/scripts/extract_and_clean.py "$DATASET_ID"
--json 标志会返回运行元数据,包括 defaultDatasetId。发生错误时会返回非零退出代码,使流水线快速失败。
步骤 5:输出
向用户提供两个表格——**Tier 1(已验证)**和 Tier 2(广泛)。每篇文章包含:来源、标题、作者、日期、字符数、URL。
## News Intelligence: InPost (INPST.AS) — Last 7 days
### Tier 1 — Verified Sources (2)
| Source | Title | Author | Date | Chars | URL |
|--------|-------|--------|------|-------|-----|
| bloomberg.com | InPost Readies AI Shopping Assistant | K. Krasuski | 2026-03-19 | 7,577 | … |
### Tier 2 — Broad Discovery (5)
| Source | Title | Date | Chars | URL |
|--------|-------|------|-------|-----|
| seekingalpha.com | InPost expands parcel locker network | 2026-03-18 | 1,200 | … |
*Sources: 6 verified queried | 5 broad | Cost: $0.15*
宏观背景
获取国家层面的经济背景时,可将以下来源与新闻扫描配合使用:
- ING Think(
think.ing.com)——通过apify/rag-web-browser获取每日中东欧外汇 / 利率信息(约 11K 字符)。最佳的免费开放访问中东欧宏观经济来源。 - IMF(
imf.org)——通过apify/rag-web-browser获取第四条款总结声明(约 22K 字符)。 - ECB(
ecb.europa.eu)——已列入 Tier 1。 - 各国央行(ČNB、NBP、MNB、BNB、NBS)——直接提取 URL;参见 reference/MACRO_SOURCES.md。
关键注意事项
- 在 Google News 中务必设置
decodeUrls: true(编码后的重定向会导致所有提取器失效)。 - “InPost”含义模糊,会匹配“post-Maduro”。请使用
"InPost SA"以确保精确。 - 每次运行最多处理 10 个 RSS 源,请分批处理。
- Zawya headline-scraper 返回的是标签页,而非文章,请从标题运行中排除。
- Reuters 需要 RESIDENTIAL 代理,否则只会返回 386 个字符。
- Reuters:rag-web-browser 对约 60% 的 URL 返回 0 个字符,只能使用 workhard3000。
- Morningstar 的
.co.ukURL 使用 workhard3000 会失败,请使用.comURL 提取。 - WSJ 的 livecoverage 页面会失败,请跳过与
wsj.com/livecoverage/匹配的 URL。 - FT:rag-web-browser 返回 16 个字符(“Client Challenge”),请使用 workhard3000。
- Forbes:workhard3000 返回 0 个字符,请使用 rag-web-browser。
- Barron's / MarketWatch 每页费用为 $0.25,请仅用于高价值文章。
- Caixin URL 必须完整,截断的 URL 无法提取。
- EC Press Corner 是 Angular SPA,
rag-web-browser会返回 0 个字符。请使用 REST API。
完整的失败模式目录:reference/PIPELINE_DETAIL.md、reference/SOURCE_CONFIGS.md。
参考资料
- data/sources.json — 机器可读数据:33 个来源 × 发现方式 × 提取器 × 费用 × 注意事项
- reference/SOURCE_CONFIGS.md — 各来源的 curl 示例、运行 ID、输出示例
- reference/PIPELINE_DETAIL.md — RSS 源、标题来源、警告、失败路径、来源速查表
- reference/MACRO_SOURCES.md — ING Think、IMF、各国央行
- reference/EUROPEAN_COMPANIES_GUIDE.md — 欧洲公司处理技巧
- reference/MORNING_NOTE_DETAIL.md — HTML 输出规范(已归档;不在此技能范围内)
- reference/scripts/extract_and_clean.py、reference/scripts/clean_article.py — readability-lxml 后处理器