wget 不将文件作为触发文件保存到磁盘

wget 不将文件作为触发文件保存到磁盘

我想要做的是从这样的 URL 下载一个文件: http://www.example.com/down/files/425/document-preview

当我在浏览器中访问此 url 时,它会触发一个名为的文件,例如:425.doc,它可以是 pdf、rtf、txt、docx 等文件格式。

wget 当前将此文件保存为:document-preview?有没有办法将其保存为由 url 触发的文件下载?

这是我目前所做的:

wget --save-cookies cookies.txt --post-data '[电子邮件保护]&js_password=123456789' --keep-session-cookies 参数 -phttp://www.test.co.za/test/login

wget --load-cookies cookies.txt -p www.test.co.za/downloads/doc/425399/doc-preview? --keep-session-cookies

我想在循环中更改 425399 的值,例如:从 425399 到 525399,它可以完美登录并下载,只想捕获文件名并将其保存为该文件名而不是 doc-preview?它不会保存正确的文件名,应该是:425399.doc

我确实在网上找到了这个示例来进行批量下载:wget www.whatever.com/folder/{1..30}.html

但我的问题是文件名

答案1

使用 -O 选项将文件保存为指定的名称

for i in {425399..525399}
do
        wget -O $i.doc --load-cookies cookies.txt -p www.test.co.za/downloads/doc/$i/doc-preview? --keep-session-cookies
done

答案2

问题的完整解决方案如上所述。

wget --save-cookies cookies.txt --post-data '[email protected]&password=1234' --keep-session-cookies http://www.example.com/login.php

wget --load-cookies cookies.txt -p http://www.example.com/download.php?file_id=file_{1..5000} --content-disposition --directory-prefix=downloads

相关内容