FinNLP
一行Python代码搞定全球金融数据采集,覆盖16+新闻源、社交媒体和SEC文件
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一行Python代码搞定全球金融数据采集,覆盖16+新闻源、社交媒体和SEC文件
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,如果你是一名金融分析师,想要实时追踪某只股票在社交媒体上的舆情走势,或者抓取 SEC 文件中的关键公告,传统方式需要逐个网站编写爬虫、处理反爬机制、对接各种 API——光是数据采集就耗去大半精力。FinNLP 正是为解决这一痛点而生:它将金融领域的数据获取标准化为一行 Python 代码,让研究者把时间花在模型本身,而非数据清洗的泥潭里。
FinNLP 由 AI4Finance Foundation 开发维护,该组织同时运营着 FinGPT、FinRL 等知名开源金融 AI 项目。FinNLP 的定位是为整个 FinGPT 生态提供数据层面的支撑——无论是训练金融大模型、做情感分析,还是构建量化策略,都需要海量、多源、高质量的金融数据,而 FinNLP 正是这个数据 pipeline 的核心组件。
项目自 2023 年 2 月开源以来,累计获得 1457 颗 Stars、274 个 Forks,吸引了全球数百名开发者参与贡献。最新更新为 2026 年 6 月,保持着活跃的维护状态。
FinNLP 的架构设计围绕金融 NLP 研究者的实际工作流展开,共包含六大功能模块:
1. News 数据源(覆盖最广)
这是 FinNLP 最强大的模块,支持从 16+ 个数据源实时拉取财经新闻,包括:
2. Social Media 数据源
覆盖 Twitter(X)、Facebook、Reddit、StockTwits、微博、雪球、东方财富股吧等社交平台,支持流式拉取和日期范围查询两种模式。内置 Twitter 情感分析接口(基于 Finnhub API)。
3. SEC Filings(美国证监会文件)
对接 SEC EDGAR 数据库,支持按公司类型、年份等条件筛选,批量下载 10-K(年报)、10-Q(季报)、8-K(重大事项)等关键披露文件。这是金融基本面分析的重要数据源。
4. 趋势数据
集成百度指数和 Google Trends API,可获取特定关键词的热度趋势,对于舆情驱动的量化策略非常有价值。
5. Earnings Calls(财报电话会议记录)
支持批量抓取财报电话会议文本,是理解管理层沟通语调、提取前瞻指引信息的重要来源。
6. 大语言模型集成 + 情感分析
在 large_language_models 目录下,提供了基于 OpenAI GPT-3 和 FinBERT 的情感分析 pipeline,以及基于 BERT 系列的金融文本嵌入工具。结合上述数据源,可以快速构建端到端的金融舆情分析系统。
FinNLP 还内置了四个标准金融 NLP 评测基准:
每个 benchmark 都提供了标准化的 test_xxx(model, tokenizer, batch_size) 接口,评测时自动加载 Hugging Face datasets 中的标准数据集,使用 accuracy 和 F1 作为指标,方便研究者对比不同模型的金融理解能力。
从代码结构看,FinNLP 采用模块化爬虫框架:
_base.py 中的基类,统一了接口规范(download_date_range_stock、gather_content、dataframe 属性)requests + parsel(CSS 选择器)进行网页解析,依赖极简tqdm 进度条,交互友好akshare 和 tushare 等成熟金融数据库作为中国市场的数据后背技术栈非常务实:纯 Python(>= 3.6),仅需 requests、pandas、tqdm 等常见库,无重型 ML 依赖,pip install 即可运行。
1. 数据源依赖风险:多个模块依赖第三方 API(Finnhub 需要 Token、akshare/tushare 依赖第三方数据接口),API 变更或账号限制会直接影响功能。此外,中国市场数据源(如新浪财经、同花顺)受国内监管政策影响,爬取逻辑可能随时失效,需要持续维护。
2. 代理依赖:美国新闻数据源的稳定获取依赖代理池,免费代理质量参差不齐,高质量数据采集需要商业代理支持。
3. 无容器化支持:项目未提供 Dockerfile,对于需要隔离环境的场景(如生产量化系统),需要自行打包。
4. 无 Web UI:纯库形式,无图形界面,对于非程序员用户有一定门槛。
FinNLP 的出现填补了开源领域金融 NLP 数据工具链的空白。在此之前,金融数据采集高度依赖商业终端(Bloomberg、Wind)或定制化爬虫,学术研究者和个人开发者难以低成本获取高质量数据。FinNLP 通过将这一过程标准化,大幅降低了金融 AI 研究的门槛。
结合 AI4Finance Foundation 的 FinGPT(金融大模型)和 FinRL(强化学习量化),FinNLP 构成了一个相对完整的金融 AI 开源生态,值得持续关注。
部署难度:⭐⭐(极易) | 适用人群:金融 NLP 研究者、量化开发者、数据科学家 | 推荐场景:舆情分析、金融情感分类、财报文本挖掘、SEC 文件分析