友商旧系统要下架,但是我们系统有一批图片依赖他们,他们也不太配合提供,还在沟通中。我们先爬下来做好备份,留一手以防万一。
对方服务器域名前缀固定http://xxx.yyy.com/
,文件名${fileName}.jpg
我们数据库有存储,直接构造url就可以访问图片;
http://xxx.yyy.com/${fileName}.jpg
把图片链接放在文本文件中,一行一个;如:imgs.txt
http://xxx.yyy.com/aaa.jpg
http://xxx.yyy.com/bbb.jpg
http://xxx.yyy.com/ccc.jpg
http://xxx.yyy.com/ddd.jpg
使用wget
批量下载或者爬取图片,新建个文件夹txt放进去执行命令:
(下载的文件名就是后缀xxx.jpg)
wget -b -i imgs.txt
b:表示后台下载;过程日志默认会写到同路径下的
wget-log
文件i:表示从文本文件内读取链接
查看实时日志:
tail -2000f wget-log
看到日志文末finish
,表示全部执行完毕;
日志中出现的ERROR
,排查失败的原因,补下刀;
另:
-
如果想在 Windows 上使用wget,前往下载 Windows binaries of GNU Wget ,注意下载系统位数的 exe 文件。
https://eternallybored.org/misc/wget/
将下载的 wget.exe 放到:C:\Windows\System32 -
下载名称带有顺序的图片,比如电子书扫描图片,可以先批量构造图片
url
再下载,参考脚本:
echo > img-urls.txt
for ((i=1; i<=$1; i++))
do
echo "http://sample.com/bid/123/"$i".jpg" >> img-urls.txt
done
wget -b -i img-urls.txt
# 如果链接使用 https,需要在 wget 加上参数 --no-check-certificate,不检查证书。
# wget --no-check-certificate -b -i img-urls.txt
# 运行脚本,比如参数 $1 指定为 321(表示按照顺序从 1~321 作为名称的图片)
sh download-img.sh 321