我使用以下方式保存图像:
#!/bin/bash
for i in {1..30000}
do
wget "http://services.runescape.com/m=itemdb_rs/3809_obj_sprite.gif?id="$i
done
有没有办法加快这个过程?有时 URL 不存在,我会得到:
connected.
HTTP request sent, awaiting response... 404 Not found
2012-08-04 18:09:36 ERROR 404: Not found.
出现此错误后我该如何继续?
答案1
尝试
wget "http://s.../m=itemdb_rs/3809_obj_sprite.gif?id="$i || true
这样,如果wget
失败,该行的结果仍然为零,并且脚本继续运行。
学习如何适当地处理 Bash 脚本中的错误,请查看以下资源:
答案2
您可以尝试这样的方法。
#!/bin/bash
for i in {1..30000};
do
x="http://64.79.147.130/m=itemdb_rs/3809_obj_sprite.gif?id="$i
if [[ $(echo $(GET -sd $x | grep "404")) = "" ]];
then
wget --no-dns-cache -nc -U"Firefox/10" $x 2>&1 \
| grep "Saving" | sed 's,Saving to,Saved,';
fi
done