簡體   English   中英

解析EDGAR文件

[英]Parsing EDGAR filings

我想使用python2.7從EDGAR文件中刪除任何不是文檔文本的內容(可以在線獲得.txt文件)。 文件的外觀示例如下:

EDGAR從此文件的第48頁開​​始提供其文檔類型定義:

DTD

我的程序的第一部分將EDGAR在線數據庫中的.txt文件轉換為我命名為“parseme.txt”的本地文件。 我想知道的是如何使用DTD來解析.txt文件。 我會使用像BeautifulSoup這樣的罐裝解析模塊來完成工作,但EDGAR的格式看起來很獨特,我希望避免使用大型正則表達式來完成工作。

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

我的問題與Parse SGML中的問題有關, 在Python 3中 使用 開放任意標記,使用lxml來解析Python中帶有錯誤標題的文本文件,但我相信我的問題與python2.7有關並且我不關心標題 - 我只關心文件的文本。

查看OpenSP工具包 ,它包含處理SGML文件的程序。 您最簡單的選擇可能是使用osx程序獲取輸入文件的XML版本,之后您可以使用XML處理工具。

可能首先要做一些設置,因為OpenSP軟件包沒有附帶EDGAR DTD或其SGML聲明(第48頁的參考資料的第一部分,從<!SGML "ISO 8879-1986" )。 您必須將它們作為文本文件獲取,並將它們添加到SP解析器可以找到它們的目錄中。

更新此文檔似乎是一個更新的版本。 然而,隨意的谷歌搜索並沒有立即出現任何機器可處理的版本。 因此您可能需要從PDF中復制粘貼。

但是,如果你這樣做,你將不得不刪除一些無關的格式:似乎有分頁指示符,標記為“C-1”,“C-2”,依此類推。 它們不是SGML的一部分,需要刪除。

您可以將SGML聲明和EDGAR DTD添加到目錄中(在這種情況下,DTD文件應該只包含[after <!DOCTYPE submission和匹配]中的部分)或者您可以創建“prolog”文件由兩個部分組成(即包括<!DOCTYPE submission []> )並在prolog和SGML文件上運行工具包中的任何程序 - 即將兩個名稱放在命令行中,首先使用prolog文件,以便解析器將以正確的順序讀取這兩個文件。 要了解發生了什么,您需要知道SGML解析器需要三個信息用於解析:SGML聲明用於設置一些環境和處理參數,然后是DTD來描述文檔的結構約束,最后是文檔本身。

pysec項目看起來很有希望。 這是一個基本的Django應用程序,可下載Edgar索引,然后允許您下載特定文件並從XBRL中提取財務參數。

下面的鏈接是一個將EDGAR文件解析為SQLite DB的庫。 它包含從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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM