分析EDGAR文件

2024-05-15 17:57:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用python2.7从EDGAR文件中删除任何不是文档文本的内容(这些文件以.txt文件的形式在线提供)。文件的外观示例如下:

Example

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

DTD

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

import os
filename = 'parseme.txt'
with open(filename) as f:
    lines = f.readlines()

我的问题与Parse SGML with Open Arbitrary Tags in Python 3Use lxml to parse text file with bad header in Python上的问题有关,但我认为不同,因为我的问题与python2.7有关,我不关心头-我只关心文件的文本。


Tags: 文件in文档文本txt示例内容with
3条回答

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

下面的链接是一个将EDGAR文件解析为SQLite数据库的库。它包含从EDGAR FPT站点提取Form10k和Form8Qk文件的功能,您可以指定这些文件并将其加载到SQLite DB表中的规范化格式中。考虑到对归档标准的不严格遵守,编写自己的解析脚本将是一项重要的任务。类似于下面的库和代码将加载所需季度的文件,从那里您可以简单地查询所需数据的表。

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)

http://rf-contrib.googlecode.com/svn/trunk/ha/src/main/python/edgar/

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

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

更新This document似乎是最新的版本。不过,一个随意的谷歌搜索并不会立即出现任何可机器处理的版本。因此,您可能需要从PDF中复制粘贴。

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

您可以将SGML声明和EDGAR DTD添加到目录中(在这种情况下,DTD文件只应在结尾处的[after <!DOCTYPE submission和matching]中包含部分),也可以创建一个“prolog”文件,该文件由这两个部分组成(即包括<!DOCTYPE submission []>),并在prolog和您的SGML文件-即,将两个名称放在命令行上,首先是prolog文件,这样解析器将以正确的顺序读取这两个文件。要了解发生了什么,您需要知道SGML解析器需要三条信息来进行解析:一条SGML声明来设置一些环境和处理参数,一条DTD来描述文档的结构约束,最后是文档本身。

相关问题 更多 >