最后修改和网页的大小

时间:2011-10-22 14:41:35

标签: java

我想问一下如何获取网页的最后修改日期和大小(例如500KB)? 对于修改日期:我尝试了很多网页,但所有网页都返回0。 例如

URL url = new URL(htmlList.elementAt(i));
URLConnection connection = url.openConnection();
connection.connect();
time = connection.getLastModified();

3 个答案:

答案 0 :(得分:1)

您可以获得Content-Length标题或大小。 connection.getContentLength()

可能没有为动态页面设置Last-Modified标头,但无论如何都要尝试它(例如,Stackoverflow设置它)。如果为0,则假设当前时间。

答案 1 :(得分:1)

尝试这种方式: -

// Demonstrate URLConnection. 
import java.net.*;
import java.io.*;
import java.util.Date;

class UCDemo
{
    public static void main(String args[]) throws Exception
    {
        int c;
        URL hp = new URL("http", "www.google.com", 80, "/");
        System.out.print(hp);
        URLConnection hpCon = hp.openConnection();
        System.out.println("Date: " + new Date(hpCon.getDate()));
        System.out.println("Content-Type: " +
        hpCon.getContentType());
        System.out.println("Expires: " + hpCon.getExpiration());
        System.out.println("Last-Modified: " +
        new Date(hpCon.getLastModified()));
        int len = hpCon.getContentLength();
        System.out.println("Content-Length: " + len);
        if (len > 0)
        {
            System.out.println("=== Content ===");
            InputStream input = hpCon.getInputStream();
            int i = len;
            while (((c = input.read()) != -1) && (-i > 0))
            {
                System.out.print((char)c);
            }
            input.close();
        }
        else
        {
            System.out.println("No Content Available");
        }
    }
}

答案 2 :(得分:0)

动态生成的网页通常没有Last-Modified字段,不同的网页以不同的方式包含日期。有些网站甚至没有包含这样的日期,包括底部的“©”。您可以尝试在底部或顶部附近查找日期,但可靠地从网页中提取日期必须是特定于站点的。