簡體   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