中港美上市公司季报年报下载
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_81793785/futu-filing。
技能介绍
要解决什么问题
futunn.com 把美股、港股、A 股上市公司的业务公告(业绩、通函、股东大会等)聚在一个列表里,背后接口是 quote-api/quote-v2/get-news-list。但请求带 WAF 和客户端签名:缺少真实浏览器会话时,quote-token 算不对,常见返回是 {code:500, message:"Params Error"}。手工在网页里逐条点附件,跨三个市场、多 ticker、多财年,很难自动化进本地研报或解析流水线。
技能如何工作
- 会话:用 Playwright 在有 GUI 的环境做一次交互登录,把 cookies 落到本地;编排里对
login.py应固定使用--skip-if-valid,避免在无 TTY/无头环境里反复弹窗。 - 签名:Python 侧复刻 Futu 的 HmacSHA512 + SHA256 双层截断逻辑,生成
quote-token等头,再调公告列表与详情。 - 分市场下载:由
config/companies.json与marketProfiles驱动——HK/CN 从详情页匹配 PDF,单文件落地;US 走 SEC EDGAR accession 目录,按10-K/10-Q或中概6-K/20-F规则筛主 HTML 与 ex99 附件。 - 标的补全:传入的 ticker 若不在配置里,
companies_registry会调 Futupredict接口选市场、写回 JSON,并带上supportFileTypes、titleKeyWords等标题/周期过滤默认值。 - 落地结构:文件写到
workspace/portfolio/<ticker>/filings/下,每份公告独立目录 +meta.json(财年、formType、SHA256、来源 URL 等);stdout 末尾有 summary JSON,单条失败记入errors不拖垮整批。
适用边界与注意点
- 登录:WAF 依赖真实浏览器指纹与 cookie(含
csrfToken);无图形界面的服务器只能拷贝已有cookies.json,过期时需回到可交互机器--interactive重登。 - 过滤:
supportFileTypes、titleKeyWords、supportPeriodTypes过严会导致大量skipped;美股 6-K 会对 ex99-1 内容做「是否业绩公告」二次判定,非财报会正常丢弃。 - 合规节流:脚本内置请求间隔(详情页、SEC 文件、ticker 间 sleep),勿把间隔调到 0,以免触发 Futu 限流或 IP 临时封禁。
- 港股代码:须 5 位数字(如
00700),不是700。
使用场景
- 维护中港美自选股列表,按财年与报告类型批量把业绩公告 PDF 或 SEC HTML 落到本地 filings 目录
- 搭建 portfolio 工作区后,需要从 futunn 拉取公告并生成带 SHA256 的 meta.json 供下游解析脚本读取
- 研究某只港股或 A 股公司,只保留标题含「年度报告」「季度报告」的公告附件,过滤通函与股东大会通知
- 美股中概或 ADR 标的需按 6-K/20-F 规则下载 SEC accession 文件夹内的 ex99 业绩附件而非整包无关文件
适合人员
- 做基本面或事件研究的分析师,要把腾讯、茅台、BABA 等跨市场标的季报年报集中存档到统一目录结构
- 负责投研数据管道的工程师,要把 Futu 公告接口的 WAF 与会话问题封装成可编排的 login + download 步骤
- 用本地 LLM 或规则引擎读财报 PDF/HTML 的研究员,需要先稳定批量获取港 A 直链 PDF 与美股 EDGAR 主文件
- 按 ticker 维护 companies.json 或小规模自选股池,需要 predict 自动补全 stockId 与市场类型后再跑下载任务的人