第 3 章 · 02 财报电话会议抓取


文档摘要

第 3 章 · 02 财报电话会议抓取 本节摘要:本节是「另类数据获取」的实战案例,讲怎么从 Seeking Alpha 网站抓取上市公司财报电话会议(Earnings Call)的转录文本。Earnings Call 是上市公司高管在每季度财报发布后召开的电话会议——先念稿陈述经营结果,再回答分析师提问,是文本类另类数据中信息密度极高的语料。原项目 用 Selenium + Firefox 自动化登录、翻页、抓取,把每场会议拆成陈述、参与者、元数据三类 CSV。本节讲清爬虫的整体架构、为什么用 Selenium 而非 requests、抓取产物的结构,以及它与后续 NLP 章节的衔接。读完本节,你能跑通一条从网页到结构化文本的数据采集流水线。

第 3 章 · 02 财报电话会议抓取

本节摘要:本节是「另类数据获取」的实战案例,讲怎么从 Seeking Alpha 网站抓取上市公司财报电话会议(Earnings Call)的转录文本。Earnings Call 是上市公司高管在每季度财报发布后召开的电话会议——先念稿陈述经营结果,再回答分析师提问,是文本类另类数据中信息密度极高的语料。原项目 03_alternative_data/02_earnings_calls/sa_selenium.py 用 Selenium + Firefox 自动化登录、翻页、抓取,把每场会议拆成陈述、参与者、元数据三类 CSV。本节讲清爬虫的整体架构、为什么用 Selenium 而非 requests、抓取产物的结构,以及它与后续 NLP 章节的衔接。读完本节,你能跑通一条从网页到结构化文本的数据采集流水线。

内容来源:原项目 03_alternative_data/02_earnings_calls/ 下的 sa_selenium.pyREADME.mdcheck_data.py,汉化并套用体系化模板。

⚠️ 风险提示:抓取须遵守目标网站的 ToS 与 robots.txt,频率要克制(加随机延时),不得用于商业转售;抓到的文本仅供个人学习研究,情感分析结果不构成投资建议。

学习目标

阅读完本节,你应当能够:

  1. 说清 Earnings Call 转录文本为什么是优质 NLP 语料。
  2. 解释为什么本场景必须用 Selenium 而非 requests。
  3. 描述原项目爬虫的整体架构(登录→翻页→解析→落盘)。
  4. 列出抓取产物的三类 CSV(content/participants/earnings)。
  5. 知道抓取的合规与限速注意事项。

一、为什么抓 Earnings Call

Earnings Call 在所有文本类另类数据里独树一帜:

维度 Earnings Call 的特点
信息密度 高管亲口陈述 + 分析师追问,信息密集
时效 每季度一次,固定节奏,易对齐
结构 陈述段 + Q&A 段,天然分块
覆盖度 上市公司全覆盖(美股 13000+ 家,年 30000+ 小时)
预测力 语气、语速、回避程度都能预示后续走势

原项目 README 明确指出:投资者用转录文本评估情感变化、对特定话题的强调程度、以及沟通风格。这三类信号都是后面 NLP 章节(情感分析、主题建模、词嵌入)的核心输入。

💡 核心心法:Earnings Call 的价值不在于「说了什么」(那是 10-K 里有的),而在于「怎么说」——高管的犹豫、回避、用词变化,都可能是 10-K 文本捕捉不到的前瞻信号。

二、为什么用 Selenium 而不是 requests

Seeking Alpha 的转录页面是动态渲染的——内容靠 JavaScript 加载,且需要登录才能看完整文本。requests 直接拉 HTML 拿不到正文,所以原项目用 Selenium + Firefox:

Selenium 的角色是「模拟真人浏览器」:它启动一个真实的 Firefox,由 geckodriver 驱动,能执行 JavaScript、维持登录 session、模拟滚动与点击。requests 做不到这些。

依赖准备:

组件 用途
Firefox 浏览器 渲染引擎
geckodriver 驱动 Firefox 的代理
selenium(Python 包) 编程接口
beautifulsoup4 解析渲染后的 HTML

⚠️ 警告:不同操作系统的 geckodriver 装法不同——macOS 用 brew install geckodriver,Linux/Windows 要从 GitHub releases 下载并加入 PATH。少了它,Selenium 启动 Firefox 会报 WebDriverException

三、原项目爬虫架构

sa_selenium.py 的核心流程可归纳为:

# 伪码示意,完整实现见原项目 sa_selenium.py from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Firefox() driver.get("https://seekingalpha.com/account/login") # ... 登录流程 ... for ticker in ticker_list: driver.get(f"https://seekingalpha.com/symbol/{ticker}/earnings/transcripts") # 等待 JS 渲染完成 # 解析每场会议的链接 for transcript_url in transcript_links: driver.get(transcript_url) html = driver.page_source # 用 BeautifulSoup 解析,拆出: # - content:陈述 + Q&A 正文 # - participants:参会者列表 # - earnings:日期 + 公司 save_csv(ticker, content, participants, earnings)

关键工程细节:

  1. 登录态保持:Selenium 维持 session,中途不要清 cookie。
  2. 显式等待:用 WebDriverWait 等 JS 渲染完,不要硬 sleep
  3. 限速:每篇之间加随机延时(如 2~5 秒),避免被风控。
  4. 断点续抓:把已抓的 ticker 落盘,中断后跳过。

四、抓取产物的三类 CSV

原项目把每场会议拆成三个 CSV,按「抓取的维度」分别落盘到 transcripts/parts/ 下:

CSV 名 内容 后续用途
content 陈述段 + Q&A 段全文 NLP 情感/主题分析的主力语料
participants Seeking Alpha 列出的参会者 区分高管 vs 分析家发言
earnings 日期 + 对应公司 与市场数据按日期对齐

这种「按维度分文件」的设计很关键——情感分析主要用 content,但要用 participants 区分「CEO 的话」与「分析师的问题」,用 earnings 把文本与公告日附近的股价对齐。

五、合规与工程礼仪

抓取网页数据要守规矩:

原则 实践
守 ToS 读目标网站的 Terms of Service,禁止商业抓取的不要碰
守 robots.txt 检查 site.com/robots.txt,被 Disallow 的路径不抓
限速 每次请求间随机延时(2~5 秒),高峰期降速
不二次分发 抓到的数据仅供个人研究,不公开 repost
个人信息脱敏 如含 PII,使用前脱敏

⚠️ 警告:Seeking Alpha 的 ToS 明确禁止商业性抓取。本节示例仅供学习研究,生产环境请走官方 API 或购买数据授权(如 Refinitiv、Bloomberg 的 Earnings Call 库)。

六、与后续 NLP 章节的衔接

本节抓到的 content 文本是「生语料」,后续章节会依次加工:

章节 加工
第 14 章 文本数据与情感 分词、停用词、TF-IDF、情感打分
第 15 章 主题建模 LSA/NMF/LDA 提取主题
第 16 章 词嵌入 Word2Vec/GloVe/BERT 把词转向量,做语义相似度

所以本节是 NLP 流水线的「数据采集」起点,真正用 ML 提取信号要在第 14 章之后。

七、备选方案:官方数据源

不想自己爬,也可以走付费/官方通道:

  • Refinitiv StreetEvents:规范的 Earnings Call 转录库。
  • Bloomberg:{ECO<GO>} 之类的接口。
  • FactSet / S&P Capital IQ:含转录文本。
  • Seeking Alpha 商业 API(若有授权)。

这些渠道省去爬虫工程量,数据更规整,但要花钱。本教程用自建爬虫是为了演示「如何从零创建一个另类数据集」这条路径——这是原书第 3 章的核心教学目的。

本节要点回顾

  1. Earnings Call 是优质 NLP 语料:高管陈述 + 分析师 Q&A,信息密度高、节奏固定、覆盖广。
  2. 必须用 Selenium:页面 JS 动态渲染 + 需登录,requests 拿不到正文。
  3. 依赖:Firefox + geckodriver + selenium + beautifulsoup4。
  4. 三类 CSV:content(正文)、participants(角色)、earnings(日期对齐)。
  5. 工程要点:登录态保持、显式等待、限速、断点续抓。
  6. 合规底线:守 ToS/robots、限速、不二次分发、不商用。
  7. 后续衔接:本节是数据起点,情感/主题/词嵌入在第 14~16 章。

下一章,我们进入全书的核心实战——Alpha 因子研究与特征工程,先从「特征工程」方法论讲起,看怎么把原始 OHLCV 变成能预测收益的因子。


发布者: 作者: 灏天文库 转发
评论区 (0)
U