Pythonでスクレイピング! icrawler大量の画像を自動でダウンロード

  • URLをコピーしました!

今回はicrawlerというフレームワークを使い、Pythonプログラムで画像を自動的に収集する方法について解説します。

また、本記事は「Kerasでディープラーニング!Pythonで始める機械学習入」シリーズの手順を解説するページです。シリーズの一覧は以下をご覧ください。

目次

icrawlerとは

icrawlerはGoogleやBingなどの検索エンジンで検索できる画像を自動で収集してくれる、クローラーのフレームワークです。
非常に少ない行のコードで、クローラーを使って簡単に大量の画像を取得することができます。

機械学習で大量に画像データが必要な場合などに有効なフレームワークです。
私の場合は学習用のデータでクワガタの画像が大量に必要だったため、今回作成したPythonプログラムでicrawlerを使って集めてみました。

icrawlerのインストール

以下のコマンドを実行してください。

pip install icrawler

以下のようなメッセージが出たらインストール完了です。

Installing collected packages: icrawler
Successfully installed icrawler-0.6.6

作成したソースコード

画像を収集するためのプログラムは以下の通りです。
Googleはクロール禁止のようなので、Bing版で作成してみました。

from icrawler.builtin import BingImageCrawler

crawler = BingImageCrawler(storage={"root_dir":"images"}) #ダウンロード先のディレクトリを指定
crawler.crawl(keyword="クワガタ", max_num=100) #クロール実行

3行目:
storageで指定したディレクトリに画像がダウンロードされます。
今回の例では.pyファイルがあるディレクトリ内に「images」というフォルダを作成し、その中に画像がダウンロードされます。

4行目:
「max_num」で指定した数値がダウンロードする画像の枚数となります。

実行結果

プログラムを実行すると以下のようにクローリングが始まり画像が次々にダウンロードされていきます。

2022-05-25 14:48:18,598 - INFO - icrawler.crawler - start crawling...
2022-05-25 14:48:18,599 - INFO - icrawler.crawler - starting 1 feeder threads...
2022-05-25 14:48:18,601 - INFO - feeder - thread feeder-001 exit
2022-05-25 14:48:18,601 - INFO - icrawler.crawler - starting 1 parser threads...
2022-05-25 14:48:18,603 - INFO - icrawler.crawler - starting 1 downloader threads...
2022-05-25 14:48:19,499 - INFO - parser - parsing result page https://www.bing.com/images/async?q=クワガタ&first=0
2022-05-25 14:48:20,594 - INFO - downloader - image #1  http://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/yaeyamanokogirikuwagata005.jpg
2022-05-25 14:48:22,039 - INFO - downloader - image #2  https://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/amaminokogirikuwagata003.jpg
2022-05-25 14:48:22,462 - INFO - downloader - image #3  https://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/okinawahiratakuwagata005.jpg
2022-05-25 14:48:22,788 - INFO - downloader - image #4  https://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/hiratakuwagata001.jpg
2022-05-25 14:48:23,110 - INFO - downloader - image #5  https://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/amaminokogirikuwagata004.jpg
2022-05-25 14:48:23,512 - INFO - downloader - image #6  https://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/akaasikuwagata002.jpg
2022-05-25 14:48:24,239 - INFO - downloader - image #7  http://koukokushinbun.co.jp/wp-content/uploads/2019/07/77d1212b40e308c43a92c39d3a099185.jpg
2022-05-25 14:48:24,626 - INFO - downloader - image #8  https://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/gotouhiratakuwagata001.jpg
2022-05-25 14:48:25,149 - INFO - downloader - image #9  http://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/kumejimanokogirikuwagata001.jpg
2022-05-25 14:48:25,783 - INFO - downloader - image #10 http://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/okinawanokogirikuwagata001.jpg
2022-05-25 14:48:26,238 - INFO - downloader - image #11 https://geo-sol.co.jp/wp-insects/wp-content/uploads/2014/09/amamihiratakuwagata002.jpg
2022-05-25 14:48:27,018 - INFO - downloader - image #12 https://stat.ameba.jp/user_images/20191020/22/vaky1230/36/50/j/o1080144014619755451.jpg
2022-05-25 14:48:27,734 - INFO - downloader - image #13 https://maruzukan.com/sites/default/files/photos/201808/2018080421503827_0.jpg
~
~
~

ダウンロードが完了した後、指定したフォルダを見てみると100枚の画像が実際に保存されていました。

まとめ

今回はクローラーフレームワークのicrawlerをご紹介しました。以前requestsモジュールを使った方法も解説しましたが、それよりもはるかに簡単で数行のコードでスクレイピングできる非常に優秀なライブラリでした。
ぜひデータ収集に活用してみてください。

また、以下の記事でPythonと機械学習について学べるオンラインスクールも紹介していますので、あわせてご覧ください。

それでは、また次の記事でお会いしましょう。

よかったらシェアしてね!
  • URLをコピーしました!
目次