2012-08-01 101 views
0

我正在使用Java从网页中获取一大块HTML。现在我正在使用带有getInputStream()的URLConnection,它正在加载整个页面并花费比我想要的时间更长的时间。无论如何,它只是加载我需要的块或排除图像或其他任何可以加速的块。任何帮助表示赞赏。谢谢。加快HTML提取速度

下面是一些代码:

URL page = new URL("http://www.stackoverflow.com"); 
URLConnection connection = page.openConnection(); 
String html = getResponseData(connection); 


public static String getResponseData(URLConncetion connection) { 
StringBuffer sb = new StringBuffer(); 
InputStream is = connection.getInputStream(); 
int count; 
while((count=is.read()) != -1){ 
    sb.append((char)count); 
} 
+0

有一些示例代码? – MadProgrammer 2012-08-01 14:38:05

回答

1

我认为你可以尝试寻找在while循环的实际数据,并且你发现它立即中止。

注意,您的代码只会加载HTML。不是真实的图像。它们不是您在请求页面时得到的响应的一部分。

更新:你也可以缓冲你的输入流。它可以使输入更快。你可以这样做,如下所示

InputStream is = new BufferedInputStream(connection.getInputStream()); 
+0

唯一真正慢的部分是getInputStream(),虽然 – user1423793 2012-08-01 14:58:47

+0

@ user1423793 Ooooh,我怎么能不注意到这一点。尝试将该inputstream包装在bufferedInputStream中。使用IO时缓冲更好。 – 2012-08-01 14:59:57

+0

对不起,我是这种新的。我会如何去做这件事? – user1423793 2012-08-01 15:00:45