繁体   English   中英

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

[英]What is the fastest way to get a HTML Content using java?

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

        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);
        }

网络可能是最大的开销,在Java代码方面您无能为力。 但是使用IOUtils至少可以更快地实现:

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

记住关闭底层流。

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

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

例:

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

如果您按照Tomasz的建议使用Apache Commons IO的IOUtils,则有一个甚至更简单的方法: toString(URL)或采用字符集的首选表亲(当然,需要事先知道资源的字符集)。

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

要么

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM