如何从Java中检索网页中的文本?

时间:2014-05-13 03:42:01

标签: java text web artificial-intelligence

我是Java编程语言的完全菜鸟。 我在Python,BASIC和一般编程方面有一些(强调“一些”)经验。我做了一些程序,没有什么值得注意的。

我决定开始一个相当艰巨的项目,以便: A)深入了解Java B)为我的日常生活创造一个非常有用的工具 C)获得一些编程经验

我决定创建一个名为'S.E.R.V.A.N.T.'的AI。目前他只不过是一个想法,但这就是我在这里的原因。

我的问题: 我想让Servant从网络,新闻,天气,电影列表等中检索文本。

我搜索过高和低,并且无法找到适合我问题的解决方案,有人可以提供帮助吗?

我对Java applet有0次经验,尽管我对语言本身有基本的了解。如果您能解释一下您的回复,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

对于这种性质的东西,Javascript可能会更好。它有更直观的解析方法。

如果您坚持使用java,则可以使用以下代码将HTML代码作为字符串读取:

package test;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class ConvertUrlToString {

    public static void main(String[] args) {

        try {
            String webPage = "http://www.google.com";
            URL url = new URL(webPage);
            URLConnection urlConnection = url.openConnection();
            InputStream is = urlConnection.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);

            int numCharsRead;
            char[] charArray = new char[1024];
            StringBuffer sb = new StringBuffer();
            while ((numCharsRead = isr.read(charArray)) > 0) {
                sb.append(charArray, 0, numCharsRead);
            }
            String result = sb.toString();

            System.out.println("*** BEGIN ***");
            System.out.println(result);
            System.out.println("*** END ***");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}