IDM站点抓取功能一个有趣的bug
摘要:记录一下Internet Download Manager的站点抓取功能的一个关于"无法重命名下载到临时文件夹......该文件被保存在临时文件夹中"的bug
最近使用IDM的站点抓取功能批量对一个站点进行站点抓取。这个站点比较特殊,所有文件都没有后缀。
站点抓取中我设置了只允许抓取.pdf后缀结尾的文件。过滤器设置如下:

后面IDM进行站点抓取下载文件的时候,一直弹窗报错"无法重命名下载到临时文件夹......该文件被保存在临时文件夹中"。研究后发现是IDM自身代码过滤机制的问题,过滤器改成所有文件(*.*)就正常了。
让AI分析了一下问题如下:
核心结论:为什么启用 *.pdf 后缀过滤后会报错?
这些文件链接指向的内容确实是 PDF,但 URL 中的原始文件名没有 .pdf 后缀。IDM 在本次过滤检查中使用的是这个无扩展名的名称,而不是最终保存时带 .pdf 的名称。
启用 *.pdf 包含过滤后,IDM 判定文件名不匹配,提前停止下载并删除临时文件;但后续流程仍尝试将这个已删除的临时文件保存为 .pdf(正常情况下被过滤后就应该跳过后面的保存流程),于是报“系统找不到指定的文件”(错误码 2)。
因果链:无后缀文件名 → 不匹配 *.pdf → 提前终止并删除临时文件 → 仍尝试保存为 .pdf → 源文件不存在,报错。
触发条件:*.pdf 文件名过滤与无扩展名 URL 不匹配。本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。