如何从HTML网站中提取数据?

时间:2013-03-16 13:59:13

标签: java html automation extraction

我需要从基于html的网站中提取一些文本。我有大约3000个URL,需要从他们的html中提取单行文本。我需要的数据如下:

 <html xmlns:og="http://opengraphprotocol.org/schema/">
<head>
<title>Pink Floyd Live Audio Feeds</title>// the line i need
...

如何自动完成此过程?我擅长Java,因此首选使用该语言的方法。谢谢!

3 个答案:

答案 0 :(得分:4)

您可以使用jsoup这是一个很好的Java库来处理真实的HTML。

答案 1 :(得分:3)

您可以逐行阅读html文本,当您发现</title>停止阅读页面的其余部分时。以下是如何做到这一点(我假设<title></title>与您在评论中指出的HTML代码行相同)

public static String getTitle(String address) throws IOException {
    URL url = new URL(address);
    BufferedReader reader = null;
    try {
        reader = new BufferedReader(new InputStreamReader(url.openStream()));

        String line = null;
        while ((line = reader.readLine()) != null) {
            int start = line.indexOf("<title>");
            int end = line.indexOf("</title>");

            if (start != -1) {
                return line.substring(start + "<title>".length(), end);
            }
        }

        return "";
    } finally {
        if (reader != null)
            reader.close();
    }
}

答案 2 :(得分:0)

浏览您的网址列表并使用HttpURLConnection下载该网页。在让所有页面处理数据以提取所需信息之后。 Here's the HttpURLConnection java doc page