我想要做的是从这样的 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