0

使用 java/htmlunit 我想挖掘(网络抓取)一堆对冲基金 SEC 13F 文件。我不知道如何对 SEC 的 .txt 文件进行数据挖掘,例如This Table。表格布局看起来干净而有条理,但我如何抓住< Table >相应的< S >and < 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) {
    }
}
}
4

1 回答 1

0

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

现在,格式似乎不是 XML、HTML 或任何标准格式(至少从我所知道的少量来看)......所以,我首先想到的是正则表达式,但经过第二次思考,我意识到你有由短划线数量表示的列的长度(-)

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

就是这样:)

于 2012-06-07T04:58:05.927 回答