如何在java中只从服务器获取网页的头部



有没有什么方法可以从服务器上只获取网页的头部,这样就不需要下载整个文档了?。虽然在HTTP头中有一个Range选项,但所有服务器都不支持它。此外,每个网页的头部分大小也不相同。

您可以为要解析的网站创建一个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();

最新更新