如何在java中仅从服务器获取网页的head部分

时间:2015-03-26 16:54:28

标签: java http

是否有任何方法只能从服务器获取网页的head部分,因此无需下载整个文档?虽然HTTP标头中有Range选项,但所有服务器都不支持它。此外,每个网页的头部大小并不相同

1 个答案:

答案 0 :(得分:2)

您可以为要解析的网站创建InputStream。然后使用BufferedInputStream,并手动解析内容。如果您认为已完成(例如已达到</head>),则可以关闭流。这样您就不会下载所有HTML内容。

代码:

InputStream is = new URL("http://www.website.com/").openStream();
BufferedInputStream bis = new BufferedInputStream(is);
Reader rdr = new InputStreamReader(bis);

boolean finished = false;
while(! finished) {
    String line = rdr.readLine();
    if (line.indexOf("</head>") >= 0) {
        finished = true;
    } else {
         // parse or save the header
    }
}
bis.close();