[英]Parsing EDGAR filings
我想使用python2.7從EDGAR文件中刪除任何不是文檔文本的內容(可以在線獲得.txt文件)。 文件的外觀示例如下:
EDGAR從此文件的第48頁開始提供其文檔類型定義:
我的程序的第一部分將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.