我正在尝试从此基本网址“http://runawaypodcast.com/wp-content/uploads/2014/”下载所有“.m4a”播客文件,并忽略已下载的文件。
这是我当前的代码(它不搜索子目录)
#!/bin/bash
lynx --dump 'http://runawaypodcast.com/wp-content/uploads/2014/01/' | awk '/http/{print $2}' >> temp.txt
while read link || [[ -n "$link" ]]; do
if [[ $link == *m4a ]]
then
if grep -q $link usedlinks.txt; then
echo "This episode has already been downloaded!"
else
wget $link
echo $link >> usedlinks.txt
fi
else
echo "Non-audio file detected!"
fi
done < temp.txt
rm temp.txt
(我还想将下载的文件重命名为某种模式,我不知道你是否也能帮忙解决这个问题?)
答案 0 :(得分:0)
根本不需要编写脚本。所有你需要做的 - 阅读wget
手册页:)
wget -np -nd -c -A.m4a -r -k -erobots=off http://runawaypodcast.com/wp-content/uploads/2014/
对于大量文件重命名,有一个rename
工具(在使用之前检查你拥有哪一个,因为它取决于你的发行版)
完整说明如何处理此下载。首次下载可以通过以下方式执行:
wget -np -nd -c -A.m4a -r -k -erobots=off http://runawaypodcast.com/wp-content/uploads/2014/ \
-o download.log
现在我们有了所有下载登录文件。要形成黑名单以供将来下载,我们需要从日志中构建文件列表:
v_black_list=$(sed -n '/--.*m4a/s=.*/==p' download.log | tr '\n' ',')
要使用此启用的黑名单运行wget,您必须使用-R
选项:
wget -np -nd -c -A.m4a -r -k -erobots=off http://runawaypodcast.com/wp-content/uploads/2014/ \
-a download.log -R$v_black_list
请注意,在第二次运行时使用-a
而不是-o
来避免日志文件覆盖。
答案 1 :(得分:0)
您可以使用wget在一行中为您抓取网站。它可以为您下载所有* .m4a文件,然后保存在目录中,就像它们存储在网站上一样。这是一个帮助您入门的基本命令,但您需要调整选项以完全按照您的要求执行操作:
wget -r -H -l1 -np -N -A.m4a -erobots=off http://runawaypodcast.com/wp-content/uploads/2014/