我想解析来自 SEC 的旧式 EDGAR txt 文件,其中包含带有免费财务数据的不同文件,但是解析具有表格外观的 txt 并提取这些数据并非易事。
这是示例文件的链接
我创建了一个程序的开始,但它非常不稳定,需要针对不同情况进行大量调整。如果数据长度发生变化,除 2000 年而非 1999 年以外的任何其他类似文件都将失败,程序将中断。我不是程序员,我想知道是否有更健壮和可扩展的方法来解析这种类型的文本文件。谢谢
from bs4 import BeautifulSoup
import requests
fo_99 = requests.get("https://www.sec.gov/Archives/edgar/data/1067983/000095015099001240/0000950150-99-001240.txt")
soup_99 = BeautifulSoup(fo_99.text, "lxml")
tables_99 = soup_99.find_all('caption')
len(tables_99)
table = tables_99[1].find_all("s")
len(table)
_string = str(table[0]).split("\n")
for line in str(table[0]).split("\n"):
if len(line) > 11:
if not line.startswith(("<s>")):
print( line[0:25], "|",
line[25:30], "|",
line[30:43], "|" ,
line[43:55], "|" ,
line[55:66], "|",
line[66:72], "|",
line[72:76], "|",
line[76:87], "|",
line[87:109], "|",
line[109:121], "|",
line[121:128], "|",
line[128:], "|")
else:
print(line)