当前位置:首页>python>edgartools,一个扎实的 Python 库

edgartools,一个扎实的 Python 库

  • 2026-10-11 06:02:35
edgartools,一个扎实的 Python 库

大家好,我是木木。

今天给大家分享一个SEC 数据提取的 Python 库,edgartools。

edgartools

edgartools 是一个面向 SEC EDGAR 的 Python 库,常用来下载、检索和解析公司公告、10-K、10-Q、Form 4、13F 等文件。它适合金融研究、基本面分析、合规审查和需要把公开披露文件转成结构化数据的场景。和直接拼 SEC URL 或手写 HTML 解析相比,edgartools 把 filing、company、financials 这些概念封装成对象,代码会更像业务语言。

项目地址:https://github.com/dgunning/edgartools

官方文档:https://edgartools.readthedocs.io/

三大特点

对象清晰

Company、Filing、Financials 等对象把 SEC 文件访问整理得更直观。

覆盖丰富

适合年报、季报、内幕交易、机构持仓等常见披露数据。

注意身份

正式访问 SEC 时要设置 identity,并控制请求频率。

最佳实践

安装方式:pip install edgartools。访问 SEC 数据前建议设置 set_identity("name email"),并把缓存目录和请求节流纳入项目配置。

第一段代码解决的问题是:确认当前安装版本和核心入口对象,先把可用 API 摸清楚。

importwarningswarnings.filterwarnings("ignore")importedgarfromedgarimportCompany,Filing,get_filings,set_identityprint("edgar:",edgar.__version__)forobjin[Company,Filing,get_filings,set_identity]:print(f"{obj.__name__}: ready")

第二段代码解决的问题是:用一个 filing 的核心字段构建对象,理解 CIK、表单类型、日期和 accession number 的关系。

importwarningswarnings.filterwarnings("ignore")fromedgarimportFilingfiling=Filing(cik=320193,company="Apple Inc.",form="10-K",filing_date="2023-11-03",accession_no="0000320193-23-000106")print(filing)print("cik:",filing.cik)print("company:",filing.company)print("form:",filing.form)print("homepage:",filing.homepage_url)

环境与版本信息

本文示例使用 Python 3.11.0、edgartools 5.36.0。截图示例不请求 SEC 远端接口,只演示本地对象与 URL 构造;生产使用时要处理网络、缓存和 SEC 访问规范。

高级功能

edgartools 的进阶价值在于把 filing 作为稳定对象纳入数据流水线。先用元数据定位文件,再按表单类型选择解析逻辑,会比一上来抓全文更稳。

importwarningswarnings.filterwarnings("ignore")fromedgarimportFilingfilings=[Filing(320193,"Apple Inc.","10-K","2023-11-03","0000320193-23-000106"),Filing(789019,"Microsoft Corp","10-K","2023-07-27","0000950170-23-035122"),Filing(1018724,"Amazon.com Inc","10-Q","2023-10-27","0001018724-23-000021"),]forms={}forfilinginfilings:forms[filing.form]=forms.get(filing.form,0)+1print("filings:",len(filings))forform,countinsorted(forms.items()):print(f"{form}: {count}")print("first archive dir:",filings[0].base_dir)

适用场景

适合 SEC 披露数据研究、财报解析、Form 4 内幕交易监控、13F 持仓分析和公告检索。

不适用场景

不适合需要交易所实时行情的数据链路,也不适合在没有缓存、身份标识和请求节流的情况下高频抓取 SEC。

上线检查

  1. 配置 SEC identity。2. 为下载结果启用缓存。3. 按 form 类型分开解析和测试。4. 对 accession number、CIK 和日期建立唯一键。

总结

edgartools 的好处是把 SEC 文件处理变成清楚的 Python 对象流程。只要尊重访问规范,它会让披露数据工程少很多手写解析。

最新文章

随机文章