2011-07-11 89 views
3

我正在寫一個網絡爬蟲搜索文件和下載。我的問題是我不想下載已經下載到本地驅動器的相同文件。我知道可以使用MD5散列進行比較,但是如何在不將URL下載到本地磁盤的情況下在HTTP URL上執行此操作?如何爲位於Http Url的文件生成MD5哈希值?

如果這種方法是錯誤的。請一個更好的解決方案

回答

8

指點除非Web服務器具有某種服務的共享的MD5,然後號

計算文件哈希需要在文件中的每個字節。這就是爲什麼改變一個字節改變散列,以防止獲得修改的文件。

0

您將能夠在遠程文件上執行的唯一比較是尺寸比較。不幸的是,這可能不足以確定內容是否相同。

2

要生成一個散列,你將需要這些數據(即,你需要以某種方式下載它)。

我建議你使用If-Modified-SinceHTTP頭來進行調查(或者如果特定的服務器提供它,可能是ETag/If-None-Match)。