我有以下文件夹结构:
example.com
|
|_ folder1
| |_ file1.mp4
|
|_ folder2
| |_ file2.mp4
|
|_ folder3
| |_ file3.mp4
|
|_ folder4
|_ file4.mp4
我想下载所有 mp4 文件,我可以这样做:
wget --no-parent -A mp4 example.com/
但是,这些文件很大,无法全部适合我的机器。因此,我只想获取path
每个内容mp4
,当我有更多空间时可以下载。
如何获取以下 url,并可能输出到文件(无论 url 是否编码):
example.com/folder1/file1.mp4
example.com/folder2/file2.mp4
...
答案1
您可以使用 wget 制作地址列表:
# parse listing index.html
$ wget -O- http://download.savannah.gnu.org/releases/lzip/ | grep -oE '["].*\.lz["]' | sed -e 's/^.*href=//' -e 's/\"//g' > urls.txt
# download files from list
$ wget -i urls.txt
如果你有更多,你可以将它们放入数组中,然后
addresses=(\
"http://aaaaa" \
"http://bbbb" \
"http://ccc" \
)
for adr in ${addresses[@]}; do
wget -O- ...
done
您还可以将所有这些组合起来 - 在第一步中制作列表列表 (index.html-s),然后在第二步中制作 .mp4-s 列表,然后使用 .mp4-s 从该列表中下载wget -i <urls>
。
答案2
您可以拒绝 mp4 文件,同时将拒绝记录到文件中,以便稍后用于下载这些 mp4。
根据上面的命令(您可能需要添加-r
):
wget --no-parent --rejected-log=file.rej -R mp4 example.com/
拒绝将在file.rej
.它有很多字段,第二个是被拒绝的 URL。