如何使用Htmlunit对财务表进行数据处理?

时间:2012-06-06 19:02:09

标签: java web-scraping htmlunit

使用java / htmlunit我想数据挖掘(web scrape)一堆对冲基金SEC 13F文件。我不知道如何对SEC的.txt文件进行数据处理,例如This Table。 表格布局看起来干净整洁,但如何使用相应的< Table >< S >抓取< C >?此外,我如何只获取公司名称和< C >值(第3列)和< C > Shares Amt(第4列)。

我不确定自己是否走在正确的轨道上,但是我使用了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) {
    }
}
}

1 个答案:

答案 0 :(得分:0)

我不知道这个文档有什么样的格式,但HTMLUnit最多允许你从网上下载它。你必须自己进行解析。

现在,格式似乎不是XML,HTML或任何标准格式(至少从我知道的少量)...所以,我首先考虑正则表达式,但经过一秒钟的思考我意识到你已经得到了由短划线(-)表示的列的长度。

您可以使用正则表达式来获取<table>标记之间的所有内容,然后使用任何编程语言将虚线分割为字符串数组,然后将每行的文本剪切为字符数量。每个字符串。

那就是它:)