爬取网页地址:
https://www.zhihu.com/question/367731424/answer/1854616582
脚本内容
#!/bin/bash
#参数初始化
if [ $# -ne 3 ];
then
echo "Usage: $0 URL -d DIRECTORY"
exit -1
fi
while [ $# -gt 0 ]
do
case $1 in
-d) shift; directory=$1; shift ;;
*) url=$1; shift;;
esac
done
#匹配待下载的图片url
mkdir -p $directory;
baseurl=$(echo $url | egrep -o "https?://[a-z.\-]+")
echo Downloading $url
curl -s $url | egrep -o "<img[^>]*src=[^>]*>" | \
sed 's/<img[^>]*src=\"\([^"]*\).*/\1/g' | \
sed "s,^/,$baseurl/," > /tmp/$$.list
#下载
cd $directory;
while read filename;
do
echo Downloading $filename
curl -s -O "$filename" --silent
done < /tmp/$$.list
#无后缀文件增加后缀
ls | grep -Ev "*.(png|jpg|bmp|gif)$" |while read fileName;do
echo mv $fileName to $fileName.jpg
mv $fileName $fileName.jpg
done
用法
格式:
./img_downloader.sh -d DIR URL
./img_downloader.sh URL -d DIR
./img_downloader.sh https://www.zhihu.com/question/367731424/answer/1854616582 -d images
收获满满。。
tar归档压缩传到本机电脑,解压打开即可。
参考:Linux_Shell脚本攻略第三版 5.7节