2012-06-06 10 views
0

使用java/htmlunit我想數據挖掘(網絡刮)一堆對衝基金SEC 13F申報。我不知道如何對美國證券交易委員會的.txt文件進行數據處理,如This Table。 桌子佈局看起來很整潔,但我怎樣才能抓住<Table>以及相應的<S><C>?此外,我怎樣才能抓住公司名稱和<C>價值(第3欄)和<C>股份金額(第4欄)。如何使用Htmlunit數據庫財務表?

不知道如果我在正確的軌道上,但是我用的BufferedReader,不知道下一步該怎麼做的<Table>中獲取數據......這是我到目前爲止有:

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.MalformedURLException; 
import java.net.URL; 

public class BufferedReaderExample { 

public static void main(String[] args) { 

    try { 
     // Create a URL for the desired page 
     URL url = new URL("http://www.sec.gov/Archives/edgar/data/1047644/000104746912006072/a2209520z13f-hr.txt"); 
     BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
     String str; 


     while ((str = in.readLine()) != null) { 
      System.out.println(str); 
     } 
     in.close(); 
    } catch (MalformedURLException e) { 
    } catch (IOException e) { 
    } 
} 
} 
+0

HtmlUnit不會幫你在這裏,因爲該頁面不包含HTML,但純文本。 –

+0

感謝您的回覆。建議?我正計劃循環大約200個對衝基金。我如何在http://www.sec.gov/Archives/edgar/data/1047644/000104746912006072/a2209520z13f-hr.txt這樣的地址處理網絡抓取/ datamining純文本此外,什麼是適當的術語爲aa以.txt結尾的網址? – ETD33

回答

0

我不知道這個文件有什麼樣的格式,但HTMLUnit最多可以讓你從網上下載它。你必須自己做解析。

現在,格式似乎不是XML,HTML或任何標準格式(至少從我知道的數量來看)......所以,我首先想到了正則表達式,但經過一秒鐘的思考,我意識到你已經得到了由破折號(-)表示的列的長度。

您可以使用正則表達式來獲取<table>標記之間的所有內容,然後使用任何編程語言將虛線劃分爲一個字符串數組,然後將每行的文本以每個字符的數量字符串。

這就是它:)

+0

這將適用於.txt文件?此外,許多這些SEC文件都遍佈全球。有些使用( - )標記,其他使用直線,如http://www.sec.gov/Archives/edgar/data/1037389/0001037389-12-000061.txt有沒有一種有效的方法來創建更強大的代碼來處理這些不同的.txt格式? – ETD33

+0

@ ETD33如果語言不是標準化和記錄的,您將無法找到解析器。我的猜測是,即使這種語言是有據可查的,但沒有人花時間寫出某種解析器。所以,再一次,你必須從頭開始編寫它。好處是,如果你這樣做,你可以發佈你的解析器,並幫助其他相同的問題:) –

+0

我真的想學習如何做到這一點......但我不知道「如何使用正則表達式來獲得一切< table >標記,然後使用任何編程語言將虛線劃分爲一個字符串數組,然後按照每個字符串的字符數量將下面每行的文本剪下。「你能爲我指出正確的方向嗎? – ETD33