You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python爬取Yahoo Finance个股社区的评论及回复?

爬取Yahoo Finance个股社区评论及回复的非Selenium方案

我原本打算用Python Selenium爬取Yahoo Finance个股(比如TSLA)社区页面的评论及回复,但实际操作中碰到不少问题:必须手动触发交互才会加载评论下的回复、单条评论没有唯一标识符,还要处理已删除的评论,复杂度很高。后来改用直接调用底层API的方式解决了这些问题,以下是具体实现方法。

核心思路

Yahoo Finance的社区评论由Spot.im提供支持,直接调用Spot.im的官方API可以绕过前端交互限制,直接获取结构化的评论与回复数据,同时每条评论都会带有唯一ID,方便关联回复和处理已删除内容。

实现代码

import requests
import json

# Spot.im评论API地址
api_url = "https://api-2-0.spot.im/v1.0.0/conversation/read"

# 请求参数,可根据需求调整单次获取数量(count)和排序规则(sort_by)
payload = json.dumps({
  "conversation_id": "sp_Rba9aFpG_finmb$27444752",
  "count": 250,
  "offset": 0,
  "sort_by": "newest"
})

# 请求头,需匹配浏览器真实请求的标识信息
api_headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0',
  'Content-Type': 'application/json',
  'x-spot-id': "sp_Rba9aFpG",
  'x-post-id': "finmb$27444752"
}

# 发送请求并解析响应数据
response = requests.post(api_url, headers=api_headers, data=payload)
data = response.json()

# 格式化输出结果,便于查看结构
print(json.dumps(data, indent=4))

关键说明

  1. 参数获取:打开目标个股的社区页面,通过浏览器开发者工具的「网络」面板,筛选Spot.im相关的POST请求,即可从请求体和请求头中提取conversation_id、x-spot-id、x-post-id这些核心参数。
  2. 分页处理:如果需要获取更多评论,可循环调整offset参数(每次累加250),直到API返回的评论列表为空。
  3. 删除评论处理:API返回的数据中,已删除的评论会带有明确的标识字段(如deleted),可通过判断该字段来过滤或标记这类内容。
  4. 请求头维护:User-Agent尽量使用真实浏览器的标识,避免被API拦截;如果请求失败,可检查请求头是否与浏览器实际发送的一致。

内容的提问来源于stack exchange,提问作者Abhishek Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 08:48:36