Pythonで画像データをスクレイピング 手軽に画像収集したい方必読!

icrawlerとは

icrawlerとはウェブクローラのミニフレームワークです。

It supports media data like images and videos very well, and can also be applied to texts and other type of files.

と公式に記載があるように、画像や動画などのメディアデータをサポートしており、
テキストやその他の種類のファイルにも適用可能です。

公式マニュアル

インストール

Macならターミナル、Windowsならコマンドプロンプトを開き、次のコマンドを実行してください。

pip install icrawler

Jpyter Notebookのセルや、Colabのセルの中では次のように実行します。

!pip install icrawler

犬と猫の画像をダウンロードする

今回はGoogle検索エンジンから、犬と猫の画像をそれぞれ10枚ずつダウンロードしてきましょう。

次のプログラムを実行してみましょう。

実行した場所に、dogsというフォルダが作成され、犬の画像が10枚ダウンロードされているかと思います。

from icrawler.builtin import BingImageCrawler
crawler = BingImageCrawler(storage={"root_dir": "dogs"})
crawler.crawl(keyword="犬", max_num=10)

次に猫の画像もダウンロードしてみましょう。

from icrawler.builtin import BingImageCrawler
crawler = BingImageCrawler(storage={"root_dir": "cats"})
crawler.crawl(keyword="猫", max_num=10)

keywordに、取得したい画像の名前を渡してあげます。
max_numにはダウンロードしたい画像の枚数を渡してあげます。
(最大1000枚まで指定可能です。)

今回は、ダウンロード先のサイトをBingから取得しましたが、
他にもBaiduからも取得できます。

まとめ

この章では、icrawlerを使い画像データを収集するサンプルプログラムを記述しました。
実際、機械学習ではデータを収集することは大変な作業ですが、
icrawlerを使うことで画像データを簡単にクローリングできます。