💭

Pythonで画像検索のURLを効率的に管理するスクリプト

に公開

🧐 はじめに

デザイナーやクリエイターの皆さんは、日々の作業でたくさんの画像素材を探していることでしょう。複数の画像サイトを巡回し、良い素材が見つかったらその都度URLをメモするのは手間がかかります。

今回は、Pythonを使って画像検索のキーワードをランダムに決定し、検索で見つけた画像のURLを効率的にExcelファイルにまとめるスクリプトを紹介します。


💡 スクリプトの概要

このスクリプトは、以下の処理を自動で行います。

  1. キーワードの自動選定: 事前に用意した単語リストから、今日の画像検索のテーマとなるキーワードをランダムに1つ選びます。
  2. 画像検索サイトの誘導: pixabayunsplashの2つの画像サイトを立ち上げるようユーザーに促します。
  3. URLの入力受付: ユーザーがそれぞれのサイトで気に入った画像のURLをコピー&ペーストで入力します。入力が終わるまで繰り返しURLを受け付けます。
  4. Excelファイルへの書き出し: 入力されたURLを、今日のキーワードをタイトルとした新しいExcelファイルに自動で書き出します。

📜 コード

import random
import openpyxl
import datetime

def tag():
    tag = ["work", "experiment", "room", "home", "walking", "science", "lifestyle", "city", "park",
          "color", "nature", "dynamics", "sea", "summer", "neon", "urban", "fireworks", "light", "flower",
          "forest", "spectral", "world", "architecture", "rainbow", "tulip"]
    return random.choice(tag)

title = tag()
print(title + "が今回のキーワードです。")
print("pixabayを立ち上げてください。")

url1_list = []
while True:
    url1_path = input("画像ファイルパスを入力してください。")
    if url1_path == "":
        break
    url1_list.append(url1_path)

print("unsplashを立ち上げてください。")

url2_list = []
while True:
    url2_path = input("画像ファイルパスを入力してください。")
    if url2_path == "":
        break
    url2_list.append(url2_path)
    
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = title

sheet.cell(1, 1, value = "pixabay")
for i in range(0, len(url1_list)):
    sheet.cell(i + 2, 1, value = url1_list[i])
    
sheet.cell(len(url1_list) + 3, 1, value = "unsplash")
    
for i in range(0, len(url2_list)):
    sheet.cell(len(url1_list) + i + 4, 1, value = url2_list[i])
    
d = datetime.datetime.today()
ymd = d.strftime("%Y%m%d")
    
wb.save(ymd + "_画像データ.xlsx")

📝 コードの解説

1. 必要なライブラリのインポート

  • random: ランダムなキーワードを生成するために使用します。
  • openpyxl: Excelファイルを読み書きするために使用します。
  • datetime: 今日の日付を取得し、ファイル名に含めるために使用します。

2. キーワードの自動選定

tag()関数は、リストtagの中からランダムに1つの単語を選択して返します。この単語が、その日の検索テーマとなります。

3. URLの入力受付

while Trueループを使って、ユーザーが何も入力せずにEnterキーを押す(空の文字列を入力する)まで、URLの入力を繰り返し受け付けます。これにより、必要な数のURLを柔軟に入力できます。

4. Excelファイルの操作

openpyxlライブラリを使って、Excelファイルを操作します。

  • wb = openpyxl.Workbook(): 新しいExcelブックを作成します。
  • sheet = wb.active: アクティブなシートを取得します。
  • sheet.title = title: シート名を、先ほどランダムに選んだキーワードに設定します。
  • sheet.cell(row, column, value): 指定した行と列のセルに値を書き込みます。この関数を使って、pixabayunsplashのタイトル、そして入力されたURLを順番に書き込んでいます。

5. ファイル名の生成と保存

  • datetime.datetime.today(): 今日の日付と時刻を取得します。
  • d.strftime("%Y%m%d"): 日付をYYYYMMDD形式の文字列に変換します。
  • wb.save(ymd + "_画像データ.xlsx"): 今日の日付をファイル名の先頭に付け、Excelファイルを保存します。

🚀 使い方

  1. 上記のコードをphoto_day.pyなどの名前で保存します。
  2. ターミナル(コマンドプロンプト)を開き、スクリプトを保存したディレクトリに移動します。
  3. 以下のコマンドを実行します。
    python photo_day.py
    
  4. 実行後、キーワードが表示され、pixabayを立ち上げるよう促されます。
  5. pixabayで好きな画像をいくつか選び、URLをコピーしてターミナルに貼り付けます。入力を終える場合は、何も入力せずにEnterキーを押します。
  6. 次にunsplashについても同様の操作を行います。
  7. 入力が完了すると、スクリプトが自動でExcelファイルを作成し、保存します。

🤝 さいごに

このスクリプトは、日々のクリエイティブな作業を少しでも効率化するための簡単なツールです。キーワードリストを増やしたり、対応する画像サイトを追加したりすることで、さらに便利にカスタマイズできます。ぜひ、ご自身のワークフローに合わせて活用してみてください。

Discussion