Python

【Python】icrawlerで画像を一気にダウンロードする方法

こんにちは、まさかめです。

今回はpythonのライブラリ「icrawler」を用いて画像を一度にたくさんダウンロードする方法を紹介していきます。

まさかめ
まさかめ
検索した画像を一枚ずつダウンロードするなんて時間がいくらあっても足りないからPythonにまかせよう!

icrawlerとは

icrawlerはpythonのライブラリの一つで、Googleなどのブラウザ上で画像を検索し保存する動作を実行できます。

まさかめ
まさかめ
対象ブラウザはGoogle以外にもBingなどがあるよ!

 

使用方法は簡単で、以下のようにpipでインストールするだけです。

pip install icrawler

 

まさかめ
まさかめ
これで使用準備はOK!お手軽だね!

 

より詳細を知りたい方は公式ドキュメントを参照してください。

icrawler使用例

「母 誕生日」で検索した画像を100枚ダウンロードする

私事ですが、最近母の誕生日があり、何を渡そうかなーと考えていたので、「母 誕生日」で検索してみます。

そして、その結果として表示される画像を100枚保存してみます。

from icrawler.builtin import GoogleImageCrawler

keyword = '母 誕生日'
crawler = GoogleImageCrawler(storage = {'root_dir' : './image/' + keyword})
crawler.crawl(keyword = keyword, max_num = 100)

 

上記を実行した結果が以下となります。

まさかめ
まさかめ
プログラムがGoogleドライブにあるんだけど、そのプログラムと同階層にimageというフォルダを作成して、さらにその中で「母 誕生日」っていうフォルダを作成して、そこに画像を保存しているよ!

 

「母 誕生日」「父 誕生日」「姉 誕生日」のそれぞれで検索した画像を100枚ダウンロードする

せっかくなので、母だけでなく父や姉の誕生日に何を贈るかの参考画像も検索してみようと思います。

以下のようにfor文で回せば簡単にキーワードごとのフォルダ作成も可能なので、特定キーワードごとの画像を大量に保存したい時に重宝します。

keywords = ['母 誕生日', '父 誕生日', '姉 誕生日']

for keyword in keywords:
    crawler = GoogleImageCrawler(storage = {'root_dir' : './image/' + keyword})
    crawler.crawl(keyword = keyword, max_num = 100)

 

まさかめ
まさかめ
これで母父姉ごとにフォルダを作成して、その中に画像を保存できたね!

まとめ

今回はpythonのライブラリ「icrawler」を用いて画像を一度にたくさんダウンロードする方法を紹介しました。

特定キーワードで検索して画像を大量に保存したい時にぜひ使ってみてください。