理系とは言えません.

情報系大学院生による勉強用ブログ

google-mages-downloaderでスクレイピングする(100枚以上できる)

GoogleImagesDownloaderとは

pythonのモジュールであり,Google画像検索から,自動で画像をスクレイピングしてくれるというもの. Beautifulsoupを以前は使用していたが,HTMLの知識がなくても柔軟に使えるのでこちらに乗り換えました笑 機械学習のデータセット作りにすごく便利 ですので皆さんも是非使用してみてください.

Let's try

百聞は一見に如かずということで,やってみましょう.
(注意)GoogleChromeも必要ですので,ダウンロードしておきましょう
ググればインストール方法は出てきますので,pythonのインストールはがんばってください.
ちなみに私の環境は,

です.

GoogleImagesDownloaderのインストール

単純に$ pip install google-images-downloadでもできますが,pipのレポジトリに上がっているものはうまく実行できなかった気がします. なので,githubから直接インストールしましょう.

$ pip install git+https://github.com/Joeclinton1/google-images-download.git

ChromeDriverをカレントディレクトリへダウンロード

こちらからChromedriverもダウンロードしましょう. これがないと100枚以上ダウンロードできないです.
ChromeDriver - WebDriver for Chrome - Downloads

(注意) OS, Chromeのバージョンを合わせてダウンロードしましょう.

JupyterNotebookにて実行

コマンド上でも実行できますが,あとでファイルの処理を行うことを考えjupyter上でできるようにします.

from google_images_download import google_images_download
import os

にてモジュールのインポート.

それから,

kword = "猫" #キーワード指定
picformat="jpg" #拡張子指定
out_dir = './img' #出力フォルダ

if not os.path.exists(out_path):
    os.makedirs(out_path)

arguments = {
             "keywords":kword, # 検索キーワード
             "limit":100, #枚数
             "print_urls":True, #ダウンロード状態の表示
             "format":picformat,  #拡張子指定
             "output_directory":out_dir,
             "chromedriver":"./chromedriver",
             "related_images":True,
             "size":"large",
}   #dictで各パラメータを渡す
response = google_images_download.googleimagesdownload()
paths = response.download(arguments)  # Downloadの開始

もしエラーが出たら...

以下のところを確認してください.

  • pip install google-images-download をしてしまっている.
  • chromedriverまでの絶対パスが取れていない.
  • chromedriverのバージョンが違う.