我正在寫一個網絡爬蟲搜索文件和下載。我的問題是我不想下載已經下載到本地驅動器的相同文件。我知道可以使用MD5散列進行比較,但是如何在不將URL下載到本地磁盤的情況下在HTTP URL上執行此操作?如何爲位於Http Url的文件生成MD5哈希值?
如果這種方法是錯誤的。請一個更好的解決方案
我正在寫一個網絡爬蟲搜索文件和下載。我的問題是我不想下載已經下載到本地驅動器的相同文件。我知道可以使用MD5散列進行比較,但是如何在不將URL下載到本地磁盤的情況下在HTTP URL上執行此操作?如何爲位於Http Url的文件生成MD5哈希值?
如果這種方法是錯誤的。請一個更好的解決方案
指點除非Web服務器具有某種服務的共享的MD5,然後號
計算文件哈希需要在文件中的每個字節。這就是爲什麼改變一個字節改變散列,以防止獲得修改的文件。
您將能夠在遠程文件上執行的唯一比較是尺寸比較。不幸的是,這可能不足以確定內容是否相同。
要生成一個散列,你將需要這些數據(即,你需要以某種方式下載它)。
我建議你使用If-Modified-Since
HTTP頭來進行調查(或者如果特定的服務器提供它,可能是ETag
/If-None-Match
)。