我正在保存网站的离线副本并使用 WinHttrack 来完成。在每个 html 页面上,一些图像、pdf 等都托管在 CDN 上,并且这些图像使用查询字符串令牌、id 以及最烦人的 unix 时间戳到期来加载。想象一下这样的事情:
<img src="https://my.image.cdn.com/wp-content/uploads/a-really-cool-image.jpg?Expires=1643140853&Signature={token}&Key-Pair-Id={id}" />
此 url 仅在页面呈现后的几分钟内有效。尝试在 5 分钟后获取此图像将导致“访问被拒绝”。
在 Httrack 中,我假设这些图像的 url 是在页面第一次被抓取时在过程的早期捕获的,当 Httrack 尝试实际下载这个图像文件时,结果是一个“拒绝访问”的 xml 响应。
我的第一个测试是找到所有这些拒绝访问的文件,操作过期时间戳并再次下载。但是,过期时间戳似乎与其他查询字符串值绑定在一起并经过验证。
有没有办法强制 Httrack 完成一个 html 页面,在进入下一个页面之前下载该页面上的所有图像/pdf?或者,有没有办法强制 httrack 在下载 html 后立即下载这些图像,以便在 URL 过期之前捕获它们?或者甚至启动一个只下载图像/PDF的镜像,以便我可以合并到完整的镜像中?