import os import sys import io import urllib.request from PIL import Image # Ensure stdout handles utf-8 cleanly if sys.platform.startswith('win'): sys.stdout.reconfigure(encoding='utf-8') urls = { 'sku_011': ('https://www.kagome.co.jp/products/brand/ys100/regular/img/img_products_apple@2x_v2.png', '野菜生活100 アップルサラダ'), 'sku_012': ('https://www.kagome.co.jp/products/brand/ys100/regular/img/img_products_lemon@2x_v2.png', '野菜生活100 レモンサラダ'), 'sku_013': ('https://www.kagome.co.jp/products/brand/ys100/yssmoothie/img/green-product-pic_2.png', '野菜生活100 Smoothie グリーンスムージー'), 'sku_014': ('https://www.kagome.co.jp/products/brand/ys100/yssmoothie/img/orange-product-pic_2.png', '野菜生活100 Smoothie ビタミンスムージー'), 'sku_015': ('https://www.kagome.co.jp/products/brand/ys100/yssmoothie/img/yellow-product-pic_2.png', '野菜生活100 Smoothie バナナ&アーモンドmix'), 'sku_016': ('https://www.kagome.co.jp/products/brand/ys100/yssmoothie/img/red-product-pic_2.png', '野菜生活100 Smoothie アサイー&ベリーmix') } os.makedirs('stock', exist_ok=True) for sku, (url, name) in urls.items(): print(f'Fetching {sku}: {name} from {url}...') req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}) try: with urllib.request.urlopen(req, timeout=15) as resp: data = resp.read() img = Image.open(io.BytesIO(data)) if img.mode in ('RGBA', 'LA') or (img.mode == 'P' and 'transparency' in img.info): bg = Image.new('RGB', img.size, (255, 255, 255)) if img.mode != 'RGBA': img = img.convert('RGBA') bg.paste(img, mask=img.split()[3]) img = bg else: img = img.convert('RGB') out_path = f'stock/{sku}.jpeg' img.save(out_path, 'JPEG', quality=95) print(f'Successfully saved {sku}: {name} -> {out_path} ({img.size})') except Exception as e: print(f'Error downloading {sku} ({url}): {e}')