示例命令行 python + 脚本名 + github_url + 本地保存的文件夹
python.exe .\download_images.py https://github.com/mdn/learning-area/tree/main/html/multimedia-and-embedding/mdn-splash-page-start/originals welcome-start\originals
import os
import requests
from bs4 import BeautifulSoup
import argparse
# 解析命令行参数
parser = argparse.ArgumentParser(description='Download images from a GitHub folder.')
parser.add_argument('url', type=str, help='GitHub folder URL')
parser.add_argument('local_folder', type=str, help='Local folder to save images')
args = parser.parse_args()
# GitHub 仓库 URL
url = args.url
# 创建保存图片的本地文件夹
local_folder = args.local_folder
if not os.path.exists(local_folder):
os.makedirs(local_folder)
# 获取网页内容
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 查找所有图片链接
for img_tag in soup.find_all('a', href=True):
img_url = img_tag['href']
if img_url.endswith(('.png', '.jpg', '.jpeg', '.gif')):
# 构建原始文件的 URL
raw_url = img_url.replace('/blob/', '/raw/')
raw_url = f'https://github.com{raw_url}'
# 下载图片
img_data = requests.get(raw_url).content
img_name = os.path.join(local_folder, img_url.split('/')[-1])
with open(img_name, 'wb') as handler:
handler.write(img_data)
print(f'Downloaded {img_name}')