繁体   English   中英

Bash脚本可从网站下载图形文件

[英]Bash script to download graphic files from website

我正在尝试在Linux(Debian)中编写bash脚本,该脚本将用于在启动过程中从用户指定的网站下载图形文件。 我不确定我的代码是否正确,但是第一个问题是当我尝试在例如http://www.bbc.com/的网站上运行脚本时,出现错误: http://www.bbc.com/ : invalid identifier 我什至尝试了一个只有几个JPG文件的简单网站。 我的下一个问题是找出如何从.txt文件中下载包含Internet地址的图像的文件。

#!/bin/bash
# $1 - URL        $2 - new catalog name
read $1 $2
url=$1
fold=$2
mkdir -p $fold

if [$# -ne 3];
then
echo "Wrong command"
exit -1
fi

curl $url | grep -o -e "<img src=\".*\"+>" > img_list.txt |wc -l img_list.txt |  lin=${% *}

baseurl=$(echo $url | grep -o "https?://[a-z.]*"")
curl -s $url | egrep -o "<img src\=[^>]*>" | sed 's/<img src=\"\([^"]*\).*/\1/.*/\1/g' >  url_list.txt

sed -i "s|^/|$baseurl/|" url_list.txt
cd $fold;

接下来我该怎么办?

要从网页上下载每张图片,我将使用:

mech-dump --absolute --images http://example.com | xargs -n1 curl -O

但这需要从WWW::Mechanize软件包中安装mech-dump命令。

使用列表文件

while read -r url folder
do
    mkdir -p "$folder" || exit 1
    (cd "$folder" && mech-dump --absolute --images "$url" | xargs -n1 curl -O)
done < list.txt

(假设没有URL或没有空格的文件夹)。

错误显示: http://www.bbc.com/ : invalid identifier

您对read使用是错误的; 更改

read $1 $2
url=$1
fold=$2

read url fold

或决定在命令行上指定参数,而忽略仅read $1 $2

同样, [ ]每个操作数必须与方括号分开; 更改

if [$# -ne 3];

if [ -z "$fold" ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM