我正在编写一个网络抓取工具来搜索文件并下载。我的问题是我不想下载已经下载到本地驱动器的相同文件。我知道可以使用MD5哈希进行比较但是如何在HTTP URL上执行此操作而不将其下载到本地磁盘?
如果这种做法是错误的。请提供更好的解决方案建议
答案 0 :(得分:8)
除非网络服务器有某种共享MD5的服务,否则编号
计算文件哈希需要文件中的每个字节。这就是为什么更改单个字节会更改散列,以防止获取已修改的文件。
答案 1 :(得分:2)
要生成哈希,您将需要数据(即,您需要以某种方式下载)。
我建议您使用If-Modified-Since
HTTP标头进行调查(或者如果特定服务器提供的话,可以使用ETag
/If-None-Match
)。
答案 2 :(得分:0)
您可以在远程文件上执行的唯一比较是大小比较。不幸的是,这可能不足以确定内容是否相同。