如何从网页批量下载文件并使用它们的 href 名称(描述)重命名它们?
这个想法是,下载的文件具有描述性的名称,而原始文件名则不是这样。
例如,假设某个网页包含以下链接
<a href='http://www.example.com/docs/ex160.pdf'>Advanced Foo Bar</a>
理想情况下,我想将其保存为“Advanced Foo Bar.pdf”,但即使是“Advanced Foo Bar”也可以,因为我可以使用批量重命名实用程序将 pdf 扩展名添加到我必须下载的大约一百个文件中。
我一直在使用 Firefox 的 FlashGotAll 扩展进行下载,它在批量下载方面表现出色,只是没有内置重命名功能。
如果需要这个解决方案,我还可以启动 Linux(或使用 cygwin)并使用 curl 或 wget。
答案1
假设 html 内容看起来很像您的示例(即每行只有一个 href,没有分成几行,没有混合 HREF 和 href 等),您可以下载页面并运行
prompt$ grep www.example.com the_page.html | sed 's/.*href="\([^"]\+\)">\([^<]*\)<.*/wget -O "\2".pdf \1/' | tee files_to_download
wget -O "Advanced Foo Bar".pdf http://www.example.com/docs/ex160.pdf
...
prompt$
如果适用,编辑 files_to_download,然后通过运行下载sh files_to_download
。