不使用LastModified头值获取网站上文件的修改日期

2024-04-24 23:58:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个bashshell脚本,该脚本将评估远程网站上文件的修改日期,如果文件比本地副本更新,则下载该文件。剧本的一部分已经写好了。已开发的零件使用header Last Modified参数。我需要一个替代方案,以防最后修改的参数在标题中不可用。有没有人知道使用bashshell脚本或python来获取网站上as文件的最后修改日期,而不使用头中的last modified参数吗?在

谢谢。在

詹姆斯


Tags: 文件脚本标题参数远程网站as副本
3条回答

如果要通过http检索数据,则无法保证所请求的内容与物理文件或其他具有“上次修改”日期概念的内容相对应,因此在http协议中(除了last modified)没有其他方法可以知道。如果您没有足够新的本地副本,您可能会希望检索该文件,并且您必须根据自己的目的决定“足够新”是什么。在

如果您在主机上有一个用户帐户,并且可以通过ssh或类似的方式远程登录,那么可以检查实际文件的mod date。在

正如其他人在这里提到的,很难相信文件上次更新时的最后修改头。在

如果您不介意下载文件的全部内容,可以存储文件的md5哈希。如果在随后的调用中有所不同,则说明文件的内容已更改。在

在Bash shell中,您可以执行以下操作:

curl -s www.google.com | md5

使用优秀的pythonRequests库:

^{pr2}$

在我看来,你基本上是在维护一个缓存。HTTP不仅仅有Last-Modified头来促进缓存,但是逻辑并不是那么简单。W3C提供了一个discussion如何实现一个你可能会觉得有用的缓存。在

相关问题 更多 >