スクレイピングした画像の連番リネーム


はじめに

google-images-downloadでgoogle画像からスクレイピングで投稿したスクレイピングのあと処理の連番リネームをしただけです。そんなに難しいことはしてません。

ソースコード


from google_images_download import google_images_download
import glob
import os
from PIL import Image

前回にプラスして、”from PIL import Image”をいれる。

config = {
    "Records": [
        {
            "keywords": "Sho Hirano",
            "limit": 10,
            "no_numbering": True,
            "output_directort": "images",
            "image_directory": "Sho Hirano",
            "chromedriver": "C\\[path to chromedirver]\chromedriver\chromedriver.exe",
        }
    ]
}

response = google_images_download.googleimagesdownload()
for rc in config["Records"]:
    response.download(rc)

gifImgs = glob.glob("images" + os.sep + "*" + os.sep + "*.gif")
print(f"removing gif files: {len(gifImgs)} files")
_ = [os.remove(f) for f in gifImgs]

ここまでは前回と一緒。これに対して以下のようなコードを入れる。
ここで、for文でenumerate関数を使用して画像ファイルのリネームを行う。

files = glob.glob('./*.jpg')
for (i, old_name) in enumerate(files):
    new_name = ('./shohirano_{0:03d}.jpg'.format(i + 1))
    os.rename(old_name, new_name)
    print(old_name + " → " + new_name)

printの内容は以下のようになる。

C:\[path to image]\280full.jpg → C:\[path to dir]\shohirano_001.jpg
C:\[path to image]\2966d3c610bf42015a1f853410848b5c.jpg → C:\[path to dir]\shohirano_002.jpg
C:\[path to image]\300px-Hirano_Sho-p2.jpg → C:\[]\shohirano_003.jpg
C:\[path to image]\4f3340a3005c32ffcc64728b75b70792.jpg → C:\[path to dir]\shohirano_004.jpg
C:\[path to image]\5o0JZc.jpg → C:\[path to dir]\shohirano_005.jpg
C:\[path to image]\d8ea5b8f0f2ae32dbf5a62c00c8c3c3e.jpg → C:\[path to dir]\shohirano_006.jpg
C:\[path to image]\ed909d1bd55e96e5bab12881b350f28964e30aa3.jpg → C:\[path to dir]\shohirano_007.jpg
C:\[path to image]\MV5BODk2YzAyNGUtNTI0Yi00MDllLWFlNDUtNGJlMjAwMThmM2Q5XkEyXkFqcGdeQXVyNDQxNjcxNQ@@._V1_UY1200_CR565,0,630,1200_AL_.jpg → C:\[path to dir]\shohirano_008.jpg
C:\[path to image]\NEOBK-2298759.jpg → C:\[path to dir]\shohirano_009.jpg
C:\[path to image]\Sho_Hirano-p2.jpg → C:\[path to dir]\shohirano_010.jpg

ファイル内の結果


このように連番にリネームができる。ちなみに平野紫耀にしたがイケメンだよね。それだけ。(田中みな実と迷った笑)

ファイル構造

scrapy
├── downloads
│  ├── Sho Hirano
│  │  ├──shohirano_001.jpg
│  │  └── ...
│  └── ...
└── scrapy.ipynb
他の人の名前のファイルを実行したら、downloadsの中にどんどんたまっていく。

活用

この枚数を増やして、顔だけ切り取ったものをファイルとして蓄積すると、学習用のデータとして活用できる。顔認識などに。