发表于 : 2005-09-16 11:01
如果下载失败,也会陷入死循环,并且下载失败,删除了文件,而下面又对文件进行检查,这样也有问题。你可以看看我修改的。
oneleaf 写了:如果下载失败,也会陷入死循环,并且下载失败,删除了文件,而下面又对文件进行检查,这样也有问题。你可以看看我修改的。
代码: 全选
#优先下载mp3格式的歌曲
while((j<=downline_mp3));
do
mp3=$(awk 'NR=='"$j"'' ${SAVE}/down_mp3.txt);
echo -e "\e[1;6m\e[1;34m正在下载${name}.mp3 ... \e[1;6m\e[00m";
#如果文件已经存在则略过,不会覆盖已经存在的文件
wget --no-clobber --no-directories --timeout=${TIMEOUT} --tries=${TRYCOUNT} $mp3 -O "${SAVE}/${name}.mp3";
#若$?不等于0,则下载失败.
if [ "$?" -ne 0 ];
then
echo -e "\e[1;6m\e[1;31m发现 ${name}.mp3 文件无效,正在删除重新下载...\e[1;6m\e[00m";
rm -Rfv "${SAVE}/${name}.mp3";
#使用同一首歌的下一个有效地址重新下载
((j++));
else
#如果下载文件是有效的mp3则转向下载其它歌
if [ $(file -ib "${SAVE}/${name}.mp3" | sed -e 's/\/.*//g') = "audio" ];
then
echo -e "\e[1;6m\e[1;31m检测 ${name}.mp3 文件有效,转向下载其它歌曲...\e[1;6m\e[00m";
#设置歌曲下载完毕标记
downed=1;
break;
else
echo -e "\e[1;6m\e[1;31m发现已成功下载的 ${name}.mp3 文件无效,正在删除重新下载...\e[1;6m\e[00m";
rm -Rfv "${SAVE}/${name}.mp3";
#使用同一首歌的下一个有效地址重新下载
((j++));
fi
fi
done
代码: 全选
获取 下载列表完成。
发现 1 个名为 .mp3 下载地址。
发现 4 个名为 .wma 下载地址。
--23:24:34-- http://fs21.139.com/0/224/hot072/sound/2005941553762.mp3
=> `/tmp/firehare/.mp3'
正在解析主机 fs21.139.com... 219.134.132.200
正在连接 fs21.139.com[219.134.132.200]:80... 已连接。
已发出 HTTP 请求,正在等待回应...
读取文件头错误 (Connection reset by peer)。
重试中。
--23:24:35-- http://fs21.139.com/0/224/hot072/sound/2005941553762.mp3
(尝试次数: 2) => `/tmp/firehare/.mp3'
正在连接 fs21.139.com[219.134.132.200]:80... 已连接。
已发出 HTTP 请求,正在等待回应...
读取文件头错误 (Connection reset by peer)。
已放弃。
下载 .mp3 文件无效,正在删除重新下载
正在下载.wma
--23:24:36-- http://219.149.122.178/050606/v999-/t4813/8.wma
=> `/tmp/firehare/.wma'
正在连接 219.149.122.178:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1,982,373 [audio/x-ms-wma]
100%[====================================>] 1,982,373 114.21K/s ETA 00:00
23:24:54 (103.99 KB/s) - `/tmp/firehare/.wma' saved [1,982,373/1,982,373]
下载 成功
./dlmp3: command substitution: line 77: unexpected EOF while looking for matching `''
./dlmp3: command substitution: line 78: syntax error: unexpected end of file
发现 下载过,忽略,继续下一首。
代码: 全选
sed -e 's/<\/a>//g' | sed -e 's/\//-/g' | sed -e 's/:/-/g' | sed -e 's/\"/\'/g' | cat`
#检查是否已经下载过这首歌,如果下载过,放弃
代码: 全选
开始通过 http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=2&word=%D2%B9%C7%FA%20%D6%DC%BD%DC%C2%D7 下载 夜曲-周杰伦
--11:50:15-- http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=2&word=%D2%B9%C7%FA%20%D6%DC%BD%DC%C2%D7
=> `/tmp/firehare/down.html'
正在解析主机 mp3.baidu.com... 61.135.145.218
Connecting to mp3.baidu.com|61.135.145.218|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 未指定 [text/html]
[ <=> ] 59,882 81.58K/s
11:50:18 (81.33 KB/s) - `/tmp/firehare/down.html' saved [59882]
获取 夜曲-周杰伦 下载列表完成。
发现 0 个名为 夜曲-周杰伦.mp3 下载地址。
发现 0 个名为 夜曲-周杰伦.wma 下载地址。
下载 夜曲-周杰伦 失败
代码: 全选
开始通过 <td width=17% height=28 bgcolor=#FFFFFF class=border>http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=2&word=%B0%B5%D7%E0+%C4%CF%C8%AD%C2%E8%C2%E8 下载 暗奏-南拳妈妈)
--09:40:51-- http://%3Ctd/
=> `/tmp/lly/down.html'
正在解析主机 <td... 失败:Name or service not known。
--09:40:51-- http://width=17%25/
=> `/tmp/lly/down.html'
正在解析主机 width=17%... 失败:Name or service not known。
--09:40:51-- http://height=28/
=> `/tmp/lly/down.html'
正在解析主机 height=28... 失败:Name or service not known。
--09:40:51-- http://bgcolor=/
=> `/tmp/lly/down.html'
正在解析主机 bgcolor=... 失败:Name or service not known。
class=border>http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=2&word=%B0%B5%D7%E0+%C4%CF%C8%AD%C2%E8%C2%E8: 不支持的主题.
下载完毕 --09:40:51--
下载了:0 字节,共 0 个文件
获取 暗奏-南拳妈妈) 下载列表完成。
发现 0 个名为 暗奏-南拳妈妈).mp3 下载地址。
发现 0 个名为 暗奏-南拳妈妈).wma 下载地址。
下载 暗奏-南拳妈妈) 失败