Python 解析EDGAR文件

Python 解析EDGAR文件,python,parsing,python-2.7,sgml,Python,Parsing,Python 2.7,Sgml,我想使用python2.7从EDGAR文件(可在线获得.txt文件)中删除任何不是文档文本的内容。下面是文件外观的示例: EDGAR从本文件第48页开始提供其文档类型定义: 我的程序的第一部分将.txt文件从EDGAR online数据库获取到一个本地文件,我将其命名为“parseme.txt”。我想知道的是如何使用DTD解析.txt文件。我会使用像BeautifulSoup这样的封装解析模块来完成这项工作,但EDGAR的格式看起来很独特,我希望避免使用大型正则表达式来完成这项工作 impo

我想使用python2.7从EDGAR文件(可在线获得.txt文件)中删除任何不是文档文本的内容。下面是文件外观的示例:

EDGAR从本文件第48页开始提供其文档类型定义:

我的程序的第一部分将.txt文件从EDGAR online数据库获取到一个本地文件,我将其命名为“parseme.txt”。我想知道的是如何使用DTD解析.txt文件。我会使用像BeautifulSoup这样的封装解析模块来完成这项工作,但EDGAR的格式看起来很独特,我希望避免使用大型正则表达式来完成这项工作

import os
filename = 'parseme.txt'
with open(filename) as f:
    lines = f.readlines()
我的问题与上的问题有关,但我认为是不同的,因为我的问题与python2.7有关,我不关心标题-我只关心文件的文本。

看看,它有处理SGML文件的程序。最简单的选择可能是使用
osx
程序获取输入文件的XML版本,之后可以使用XML处理工具

可能需要先进行一些设置,因为OpenSP包没有附带EDGAR DTD或其SGML声明(第48页参考资料的第一部分,从
开始)。您必须将它们作为文本文件获取,并将它们添加到SP解析器可以找到它们的目录中

更新:似乎是最新版本。不过,随意的谷歌搜索并没有发现任何可立即由机器处理的版本。因此,您可能需要从PDF中复制粘贴

但是,如果您这样做,您将不得不删除一些无关的格式:似乎有分页符指示器,标记为“C-1”、“C-2”等等。它们不是SGML的一部分,需要删除


您可以将SGML声明和EDGAR DTD添加到目录中(在这种情况下,DTD文件应该只包含目录中的部分)[在
之后,下面的链接是一个将EDGAR文件解析为SQLite DB的库。它包含多年来从EDGAR FPT站点提取Form10k和Form8Qk文件的功能,您可以指定这些文件,并将它们加载到SQLite DB表中的规范化格式。考虑到这些文件的标准遵守情况不佳,请编写您自己的解析scipt将是一项重要的任务。类似于下面的库和代码将加载所需季度的文件,从那里您可以简单地查询表中所需的数据

edgar.database.create()
# Load quarterly master index files into local sqlite db
quarters = []
#Q3 2009
quarters.add(2009,3)
#Q3 2008
quarters.add(2008,3)
edgar.database.load(quarters)

该项目看起来很有希望。它是一款基本的Django应用程序,可以下载Edgar索引,然后允许您下载特定文件并从XBRL中提取财务参数。

我认为Python的版本在这里不太重要。您尝试过链接问题答案中提供的任何想法吗?具体位置ly你被卡住了吗?我发布了一个链接问题。但我没有收到任何反馈。这些PEM封装的消息看起来不像EDGAR的文件。相反,它们似乎是从通信档案中获取的。相关DTD必须在其他地方。出于许多原因,大多数情况下是链接的答案不被鼓励。你能解释一下吗帮助其他用户的链接的重要方面?该链接现在似乎需要密码该链接似乎返回404 not found now:-)