簡體   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