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

Python webscraping使用bs4无法抓取SEC财报页面全部标签的问题

问题原因

你当前请求的是SEC的交互式iXBRL预览页面,页面内的表格数据由前端JavaScript动态渲染生成,直接通过HTTP请求获取到的仅为页面初始骨架代码,不存在已经渲染完成的表格DOM元素,所以BeautifulSoup无法检索到对应的td标签内容。

解决方法

将你使用的URL中的ix?doc=/前缀删除,得到的就是原始静态申报文档地址,该文档所有表格内容都存储在静态HTML中,无需前端渲染即可直接解析。

修正后代码示例

from bs4 import BeautifulSoup
from urllib.request import Request, urlopen

# 请将原URL中ix?doc=/前缀删除后填入此处
url = "替换为处理后的静态文档地址"

req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
read_data = urlopen(req).read()
soup_data = BeautifulSoup(read_data,"lxml")

# 定位页面第一张表格
first_table = soup_data.find("table")
# 遍历行提取目标字段
for row in first_table.find_all("tr"):
    tds = row.find_all("td")
    if not tds:
        continue
    row_title = tds[0].get_text(strip=True)
    # 匹配你需要的字段
    if row_title in ["Products", "Services", "Cost of sales"]:
        print(row_title, [td.get_text(strip=True) for td in tds[1:]])

补充说明

如果需要提取表1的全部数据,直接遍历first_table下的所有tr标签即可输出完整表格内容。如果需要更便捷的结构化处理,也可以使用pandas的read_html方法直接将表格转换为DataFrame格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:45:03