Skip to content

Instantly share code, notes, and snippets.

@jlhg
Last active April 3, 2025 05:28
Show Gist options
  • Save jlhg/37293d898ec87cdfa5c1db8a565a2931 to your computer and use it in GitHub Desktop.
Save jlhg/37293d898ec87cdfa5c1db8a565a2931 to your computer and use it in GitHub Desktop.
讀取 HTML 檔案內容,找出所有 imgur 的圖片網址,並用 curl 下載這些圖片 (此程式由 AI 生成)
#!/bin/bash
# =============================================================================
# 功能:讀取檔案內容,找出所有 imgur 的圖片網址,並用 curl 下載這些圖片
# =============================================================================
#
# 使用方法:
# 1. 將此腳本保存為 download_imgur.sh
# 2. 給予執行權限:chmod +x download_imgur.sh
# 3. 執行腳本,提供含有 imgur 鏈接的檔案:./download_imgur.sh your_file.html
#
# 腳本說明:
# - 這個腳本會檢查輸入的檔案是否存在
# - 建立一個名為 imgur_images 的目錄來存放下載的圖片
# - 使用 grep 搭配正則表達式來找出所有 imgur 的圖片網址
# - 對找到的網址進行排序和去重
# - 使用 curl 下載每個圖片到指定目錄
# - 顯示下載進度和最終結果
#
# 注意:
# 此腳本適用於包含 imgur 直接圖片連結的檔案,如 HTML 檔案或文本檔案。
# =============================================================================
# 檢查是否提供了輸入檔案
if [ $# -eq 0 ]; then
echo "使用方法: $0 <檔案路徑>"
exit 1
fi
# 輸入檔案
input_file="$1"
# 檢查檔案是否存在
if [ ! -f "$input_file" ]; then
echo "錯誤: 檔案 '$input_file' 不存在"
exit 1
fi
# 建立下載目錄
download_dir="imgur_images"
mkdir -p "$download_dir"
# 抓取所有 imgur URL 並儲存到臨時檔案
temp_urls=$(mktemp)
grep -o 'https://i\.imgur\.com/[a-zA-Z0-9]*\.\(jpeg\|jpg\|png\|gif\)' "$input_file" | sort | uniq > "$temp_urls"
# 讀取檔案並下載圖片
echo "開始從 $input_file 下載 imgur 圖片..."
count=0
while read url; do
# 從 URL 獲取檔案名稱
filename=$(basename "$url")
# 下載圖片
echo "下載: $url"
curl -s "$url" -o "$download_dir/$filename"
# 檢查下載是否成功
if [ $? -eq 0 ]; then
count=$((count+1))
echo "已下載: $filename"
else
echo "下載失敗: $url"
fi
done < "$temp_urls"
# 刪除臨時檔案
rm "$temp_urls"
echo "下載完成! 共下載 $count 張圖片到 $download_dir 目錄"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment