【Python】画像の一括ダウンロードができるicrawlerのインストール

【Python】画像の一括ダウンロードができるicrawlerのインストール プログラミング

「検索エンジンの検索結果から画像を大量に取得したい」
「画像を一括でダウンロードしたい」

このような場合には、icrawlerがオススメです。
この記事では、画像の一括ダウンロードができるicrawlerについて解説しています。

本記事の内容

  • icrawlerとは?
  • icrawlerのシステム要件
  • icrawlerのインストール
  • icrawlerの動作確認

それでは、上記に沿って解説していきます。

icrawlerとは?

icrawlerとは、Webクローラのミニフレームワークです。
Scrapyの軽量版と言えます。

そして、icrawlerは以下の検索エンジンに対応しています。

  • Google
  • Bing
  • Baidu

これらの検索エンジンでの検索結果をクローリングすることができます。
つまり、検索エンジンの検索結果をスクレイピングできるということです。

検索エンジンを対象にする以外では、以下のサイト・方法でクローリングが可能になります。

  • Flickr
  • General greedy crawl(ウェブサイトからの画像収集)
  • UrlList(urlリストで指定されたすべての画像の取得)

icrawlerは、基本的には画像収集で利用されることが多いです。
例えば、「猫」の画像をたくさん必要となった場合にBingで検索したとします。

icrawlerを用いれば、これらの画像を一気に取得することが可能になります。

なお、icrawlerは動画やテキストなども取得することが可能です。

以上、icrawlerについて説明しました。
次は、icrawlerのシステム要件を説明します。

icrawlerのシステム要件

現時点(2022年7月末)でのicrawlerの最新バージョンは、0.6.6となります。
この最新バージョンは、2021年8月14日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となっています。

  • Python 2.7
  • Python 3.5
  • Python 3.6
  • Python 3.7

メンテナンスが行き届いていないように感じます。
基本的には、以下のPython公式開発サイクルに準拠していることが望ましいです。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

Python3.7で動けば、それ以降でも問題はないとは思います。
実際、Python 3.10でも機能していますからね。

以上、icrawlerのシステム要件を説明しました。
次は、icrawlerのインストールを説明します。

icrawlerのインストール

検証は、次のバージョンのPythonで行います。

$ python -V
Python 3.10.2

まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package    Version
---------- -------
pip        22.2
setuptools 63.2.0
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、icrawlerのインストールです。
icrawlerのインストールは、以下のコマンドとなります。

pip install icrawler

icrawlerのインストールには、少し時間がかかります。
終了したら、どんなパッケージがインストールされたのかを確認します。

$ pip list
Package            Version
------------------ -----------
beautifulsoup4     4.11.1
certifi            2022.6.15
charset-normalizer 2.1.0
icrawler           0.6.6
idna               3.3
lxml               4.9.1
Pillow             9.2.0
pip                22.2
requests           2.28.1
setuptools         63.2.0
six                1.16.0
soupsieve          2.3.2.post1
urllib3            1.26.11
wheel              0.36.2

icrawlerは、そこそこの数のパッケージに依存しています。
それも、知名度のあるパッケージが多い印象です。

以上、icrawlerのインストールを説明しました。
次は、icrawlerの動作確認を説明します。

icrawlerの動作確認

icrawlerの動作確認を行います。
icrawlerを用いて、Googleの検索結果から画像を取得してみましょう。

用いるコードは、以下。

from icrawler.builtin import GoogleImageCrawler

google_crawler = GoogleImageCrawler(storage={'root_dir': 'result'})
google_crawler.crawl(keyword='犬', max_num=100)

コードの内容は、「犬」の検索結果から最大で100個の画像を取得します。
ただし、実際に100個取得できるわけではありません。

上記コードを実行した結果は、以下のように表示されます。

2022-07-27 20:42:54,502 - INFO - icrawler.crawler - start crawling...
2022-07-27 20:42:54,502 - INFO - icrawler.crawler - starting 1 feeder threads...
2022-07-27 20:42:54,502 - INFO - feeder - thread feeder-001 exit
2022-07-27 20:42:54,503 - INFO - icrawler.crawler - starting 1 parser threads...
2022-07-27 20:42:54,503 - INFO - icrawler.crawler - starting 1 downloader threads...
2022-07-27 20:42:59,504 - INFO - downloader - downloader-001 is waiting for new download tasks
2022-07-27 20:43:00,156 - INFO - parser - parsing result page https://www.google.com/search?q=%E7%8A%AC&ijn=0&start=0&tbs=&tbm=isch
2022-07-27 20:43:05,926 - INFO - downloader - image #1	https://skywardplus.jal.co.jp/wp-content/uploads/2020/07/shosai_dogday_main.jpg
2022-07-27 20:43:06,054 - INFO - downloader - image #2	https://image.itmedia.co.jp/business/articles/2204/17/l_mk_inu_000.jpg
2022-07-27 20:43:06,235 - INFO - downloader - image #3	https://pshoken.co.jp/uploads/2020/01/27/dog-symptom019a.jpg
〜
2022-07-27 20:43:23,252 - INFO - downloader - image #84	https://img.wanqol.com/2021/04/c351ea11-sigh_p01.jpg
2022-07-27 20:43:23,401 - INFO - downloader - image #85	https://www.aeonpet.com/assets/ap_special_detail/ap_special_detail-img-285.jpg
2022-07-27 20:43:23,571 - INFO - downloader - image #86	https://kahoku.news/images/2022/05/03/20220503khn000020/001_size3.jpg
2022-07-27 20:43:24,792 - INFO - parser - no more page urls for thread parser-001 to parse
2022-07-27 20:43:24,792 - INFO - parser - thread parser-001 exit
2022-07-27 20:43:28,572 - INFO - downloader - no more download task for thread downloader-001
2022-07-27 20:43:28,572 - INFO - downloader - thread downloader-001 exit
2022-07-27 20:43:29,540 - INFO - icrawler.crawler - Crawling task done!

結果的には、86個の画像を収集できています。
処理にかかった時間は、30秒ちょっとですね。

画像は、「result」ディレクトリに保存されています。
ディレクトリは自動的に作成されるため、予め作成する必要はありません。

「result」ディレクトリは、次のような状況です。

Googleで「犬」を検索した結果画面とほぼ同じモノを確認できます。

以上、icrawlerの動作確認を説明しました。

タイトルとURLをコピーしました