使用java获取HTML内容的最快方法是什么?

时间:2012-08-01 21:36:43

标签: java inputstream bufferedinputstream

我有这个,但我想知道是否有更快的方法:

        URL url=new URL(page);
        InputStream is = new BufferedInputStream(url.openConnection().getInputStream());
        BufferedReader in=new BufferedReader(new InputStreamReader(is));
        String tmp="";
        StringBuilder sb=new StringBuilder();
        while((tmp=in.readLine())!=null){
            sb.append(tmp);
        }

3 个答案:

答案 0 :(得分:5)

可能网络是最大的开销,在Java代码方面你可以做的不多。但使用IOUtils至少要快得多:

String page = IOUtils.toString(url.openConnection().getInputStream());

请记住关闭基础流。

答案 1 :(得分:3)

如果您需要使用html进行操作,请找一些库。例如jsoup

  

jsoup是一个用于处理真实HTML的Java库。它提供   一个非常方便的API,用于提取和操作数据,使用   最好的DOM,CSS和类似jquery的方法。

示例:

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");

答案 2 :(得分:0)

如果您正在使用Apache Commons IO的IOUtils,就像Tomasz所建议的那样,有一个更简单的方法:toString(URL),或者它的首选表兄弟采取charset(当然需要提前知道资源的charset)。 / p>

String string = IOUtils.toString( new URL( "http://some.url" ));

String string = IOUtils.toString( new URL( "http://some.url" ), "US-ASCII" );