GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

hardikvasa

google-images-download – Pythonスクリプトは、Google画像から何百もの画像をダウンロードします。 これはすぐに実行できるコー..

投稿日:

Pythonスクリプトは、Google画像から何百もの画像をダウンロードします。 これはすぐに実行できるコードです!

Google Imagesダウンロード

何百ものGoogle画像をローカルのハードディスクに「検索」してダウンロードするためのPythonスクリプト!

内容

概要

これはコマンドラインのpythonプログラムで、Google画像検索でキーワードやキーフレーズを検索し、必要に応じてパソコンに画像をダウンロードすることができます。 別のpythonファイルからこのスクリプトを呼び出すこともできます。

これは小さくてすぐに実行できるプログラムです。 キーワードごとに最大100の画像しかダウンロードしない場合は、依存関係をインストールする必要はありません。 キーワードごとに100以上の画像が必要な場合は、 chromedriverと一緒にSeleniumライブラリをインストールする必要があります。 トラブルシューティングのセクションの詳細な手順

互換性

このプログラムは、Python-2.xと3.xの両方のバージョン(推奨)と互換性があります。 これは、ファイルを変更せずにダウンロードして実行するプログラムです。 コマンドラインでパラメータを指定するだけで済みます。

インストール

このリポジトリをダウンロードして使用するは、以下のいずれかの方法を使用できます。

ピップを使って

$ pip install google_images_download

CLIを使用して手動で

$ git clone https://github.com/hardikvasa/google-images-download.git
$ cd google-images-download && sudo python setup.py install

UIを手動で使用する

githubリポジトリに行きます。==> ‘クローンまたはダウンロード’をクリックしてください。==> ‘ZIPをダウンロード’をクリックし、ローカルディスクに保存してください。

使用法 – コマンドラインインターフェイスを使用する

pipまたはCLIを使用してインストールする場合は、次のコマンドを使用します。

$ googleimagesdownload [Arguments...]

UIからダウンロードした場合は、ダウンロードしたファイルを解凍し、 ‘google_images_download’ディレクトリに移動して次のコマンドのいずれかを使用します。

$ python3 google_images_download.py [Arguments...]
OR
$ python google_images_download.py [Arguments...]

使用法 – 他のpythonファイルから

別のPythonファイルからこのライブラリを使用したい場合は、以下のように使用できます。

from google_images_download import google_images_download

response = google_images_download.googleimagesdownload()
response.download({<Arguments...>})

引数

引数 短い手 説明
config_file cf

引数を設定ファイルの中に渡すことができます。 これは、引数をコマンドラインで直接渡す代わりに使用できます。

以下の設定ファイル形式を参照してください

  • ‘config_file’引数がある場合、プログラムは設定ファイルを使用し、コマンドライン引数は破棄されます
  • 構成ファイルはJSON形式でしかない
  • 設定ファイルから無効な引数を渡すことを控えてください。 以下の引数リストを参照してください
キーワード k

あなたが検索したいキーワード/キーフレーズを示します。 複数のキーワードの場合は、一重引用符で囲みます。

ヒント:

  • キーワードを入力するだけで、Googleがそのキーワードにマッチさせることを試みます
  • 正確なフレーズを検索する場合は、キーワードを二重引用符( “”)で囲むことができます
  • 提供された単語のいずれかを含むように検索する場合は、単語間にORを使用します。
  • 明示的に特定の単語を望まない場合は、単語( – )の前にマイナス記号を使用します
keywords_from_file kf

キーワードをインポートする場所のファイル名を示します。

1行に1つのキーワードを追加します。 ブランク/空の行は自動的に切り捨てられます。

ファイルタイプ ‘.txt’または ‘.csv’のみが許可されます。

prefix_keywords pk

検索クエリの作成中にメインキーワードの前に追加された追加の単語を示します。

最終的な検索クエリは次のようになります。<prefixキーワード> <keyword>

たとえば、キーワードが ‘car’でprefix_keywordが ‘red、yellow、blue’の場合、 ‘赤い車’、 ‘黄色の車’、 ‘青い車’の画像を個別に検索してダウンロードします

suffix_keywords sk

検索クエリの作成中にメインキーワードの後に​​追加された単語を示します。

最終的な検索クエリは次のようになります。<keyword> <suffix keyword>

たとえば、キーワードが ‘car’、suffix_keywordが ‘red、yellow、blue’の場合、 ‘car red’、 ‘car yellow’、 ‘car blue’の画像を個別に検索してダウンロードします

限界 l

ダウンロードしたい画像の数を示します。

ここで任意の整数値を指定できます。 それは、Google画像検索ページで見つけたすべての画像を取得しようとします。

この値を指定しない場合、デフォルトは100になります。

related_images

この引数は、あなたが提供したキーワードに関連する大量の画像をダウンロードします。

Google Imagesページは、クエリで言及したキーワードに関連するキーワードのリストを返します。 このツールは、クエリで言及した制限に基づいて、関連する各キーワードから画像をダウンロードします

この引数は値をとらない。 クエリに ‘–related_images’または ‘-ri’を追加するだけです。

注:この引数は数百または数千の追加イメージをダウンロードできるので、注意深く使用してください。

フォーマット f

ダウンロードしたい画像のフォーマット/拡張子を示します。

可能な値:jpg、gif、png、bmp、svg、webp、ico

共同

イメージに適用するカラーフィルタを示します。

可能な値:赤、オレンジ、黄、緑、青緑、青、紫、ピンク、白、グレー、黒、茶

color_type CT

画像に適用するカラータイプを示します。

可能な値:フルカラー、白黒、透明

usage_rights r

イメージが分類されている使用権/ライセンスを示します。

可能な値:

  • 変更を伴う再使用のためのラベル付けされた、
  • 再使用のためにラベル付けされ、
  • 非営利目的のためにラベル付けされている、
  • 非商業的再利用のためのラベル付け
サイズ s

ダウンロードするイメージの相対的なサイズを示します。

可能な値:大、中、アイコン、> 400 * 300、> 640 * 480、> 800 * 600、> 1024 * 768、> 2MP、> 4MP、> 6MP、> 8MP、> 10MP、> 12MP、 > 20MP、> 40MP、> 70MP

アスペクト比 a

ダウンロードする画像のアスペクト比を示します。

可能な値:高さ、正方形、幅、パノラマ

タイプ t

ダウンロードする画像の種類を示します。

可能な値:顔、写真、クリップアート、線画、アニメーション

時間 w

画像がアップロード/インデックス登録された時刻を示します。

可能な値:過去24時間、過去7日間

時間範囲 wr

画像を検索する時間範囲を示します

このパラメータの値は ‘{“time_min”: “MM / DD / YYYY”、 “time_max”: “MM / DD / YYYY”}’

ディレイ d

2枚の画像をダウンロードするまでの時間

時間は秒単位で指定されます。 しかし、小数点を使って1秒未満の時間を持つことができます。

URL あなた

Google画像検索ページからURLを取得したときに画像で検索することができます。 Google画像リンクから画像をダウンロードします

ブラウザのGoogle画像ページで画像を検索する場合は、ブラウザのURLを取得してこのパラメータに貼り付けるだけで、そのページに表示されているすべての画像がダウンロードされます。

single_image バツ 画像の完全(絶対)URLが提供されている場合は、1つの画像をダウンロードすることができます
出力ディレクトリ o

イメージがダウンロードされるメインディレクトリ名を指定できます。

指定しない場合、デフォルトで ‘downloads’ディレクトリになります。 このディレクトリは、このコードを実行した場所のパスにあります

代理 px

すべての要求に対してプロキシサーバーの設定を指定できます

プロキシ設定は ‘IP:Port’形式で指定できます

類似画像

Googleで参照されているように画像検索を逆にするか、「画像で検索」を選択します。

あなたが提供する絶対的な画像のリンク/ URLに似た画像を検索してダウンロードします。

specific_site SS 指定した特定のウェブサイト/ドメイン名のキーワードのみを使用して画像をダウンロードすることができます。
print_urls p

コンソール上の画像のURLを印刷します。 これらのイメージURLはデバッグ目的で使用できます

この引数は値をとらない。 クエリに ‘ – print_urls’または ‘-p’を追加するだけです。

print_size ps

コンソール上のイメージのサイズを表示します。

サイズは、ディスク上のイメージのサイズではなく、イメージの実際のサイズを示します。

この引数は値をとらない。 クエリに ‘–print_size’または ‘-ps’を追加するだけです。

メタデータ m

コンソールの画像のメタダを印刷します。

これには、画像サイズ、原点、画像属性、説明、画像URLなどが含まれます。

この引数は値をとらない。 クエリに ‘–metadata’または ‘-m’を追加するだけです。

extract_metadata e

このオプションを使用すると、ダウンロードしたすべての画像のメタデータをテキストファイルに保存できます。

このファイルはlogs/ディレクトリにあります。 ファイルの名前は、キーワードnamと同じです

この引数は値をとらない。 クエリに ‘–extract_metadata’または ‘-e’を追加するだけです。

socket_timeout セント

ソケット接続の待機時間を指定できます。

インターネット接続が遅い場合は、タイムアウト時間を長く指定できます。 デフォルト値は10秒です。

サムネイル th

ダウンロードされた各イメージに対応するイメージサムネイルをダウンロードします。

サムネイルは、メインディレクトリ内のサブディレクトリに保存されます。

この引数は値をとらない。 クエリに ‘–thumbnail’または’th ‘を追加するだけです。

言語

言語フィルタを定義します。 検索結果は自動的にその言語で返されます

可能な値:アラビア語、中国語(簡体字)、中国語(繁体字)、チェコ語、デンマーク語、オランダ語、英語、エストニア語。 フィンランド語、フランス語、ドイツ語、ギリシャ語、ヘブライ語、ハンガリー語、アイスランド語、イタリア語、日本語、韓国語、ラトビア語、リトアニア語、ノルウェー語、ポルトガル語、ポーランド語、ルーマニア語、ロシア語、スペイン語、スウェーデン語、トルコ語

プレフィックス pr

実際のイメージ名の前にプレフィックスを付けるとよい単語。

この機能を使用すると、イメージの識別のためにファイルの名前を変更できます。

クロムドライバー CD

この引数を使用すると、パスを ‘chromedriver’に渡すことができます。

パスは “path / to / chromedriver”のようになります。 ウィンドウでは “path / to / chromedriver.exe”になります。

助けて h 上記の引数の使い方に関するヘルプメッセージを表示する

注: single_imageまたはurlパラメーターが存在しない場合、キーワードは必須パラメーターです。 他のパラメータは必須ではありません。

構成ファイル形式

以下の例のように、引数から直接引数を渡すか、または設定ファイルに渡すことができます。 以下は、設定ファイルの見方のサンプルです。

設定ファイルで複数のレコードを渡すことができます。 以下のサンプルは2組のレコードで構成されています。 コードは渡された引数に基づいて、レコードとダウンロードイメージのそれぞれを繰り返し処理します。

{
    "Records": [
        {
            "keywords": "apple",
            "limit": 5,
            "color": "green",
            "print_urls": true
        },
        {
            "keywords": "universe",
            "limit": 15,
            "size": "large",
            "print_urls": true
        }
    ]
}

  • このライブラリを別のPythonファイルから呼び出す場合は、サンプルコードを以下に示します
from google_images_download import google_images_download   #importing the library

response = google_images_download.googleimagesdownload()   #class instantiation

arguments = {"keywords":"Polar bears,baloons,Beaches","limit":20,"print_urls":True}   #creating list of arguments
response.download(arguments)   #passing the arguments to the function
  • 設定ファイルから引数を渡す場合は、config_file引数にJSONファイルの名前を渡してください
$ googleimagesdownload -cf example.json
  • キーワードと制限引数を使用する簡単な例
$ googleimagesdownload --keywords "Polar bears, baloons, Beaches" --limit 20
  • サフィックスキーワードを使用すると、メインキーワードの後に​​単語を指定することができます。 たとえば、 keyword = carsuffix keyword = 'red,blue'場合は、最初にcar redcar blue検索しcar blue
$ googleimagesdownload --k "car" -sk 'red,blue,white' -l 10
  • ショートハンドコマンドを使用するには
$ googleimagesdownload -k "Polar bears, baloons, Beaches" -l 20
  • 特定の画像拡張子/形式の画像をダウンロードするには
$ googleimagesdownload --keywords "logo" --format svg
  • 画像にカラーフィルターを使用するには
$ googleimagesdownload -k "playground" -l 20 -co red
  • 画像検索に英語以外のキーワードを使用するには
$ googleimagesdownload -k "北极熊" -l 5
  • Google画像リンクから画像をダウンロードするには
$ googleimagesdownload -k "sample" -u <google images page URL>
  • 特定のメインディレクトリ( ‘ダウンロード’ではなく)に画像を保存するには
$ googleimagesdownload -k "boat" -o "boat_new"
  • 画像URLを使用して1つの画像をダウンロードするには
$ googleimagesdownload --keywords "baloons" --single_image <URL of the images>
  • サイズとタイプの制約を持つ画像をダウンロードするには
$ googleimagesdownload --keywords "baloons" --size medium --type animated
  • 特定の使用権を持つイメージをダウンロードするには
$ googleimagesdownload --keywords "universe" --usage_rights labeled-for-reuse
  • 特定のカラータイプの画像をダウンロードするには
$ googleimagesdownload --keywords "flowers" --color_type black-and-white
  • 特定の縦横比の画像をダウンロードするには
$ googleimagesdownload --keywords "universe" --aspect_ratio panoramic
  • 提供した画像URLに画像に類似した画像をダウンロードする(逆画像検索)。
$ googleimagesdownload -si <image url> -l 10
  • 特定のウェブサイトまたはドメイン名から特定のキーワードの画像をダウンロードするには
$ googleimagesdownload --keywords "universe" --specific_site example.com

===>画像はメインディレクトリ(あなたが提供したものか ‘ダウンロード’のもの)の中の自分のサブディレクトリにあるあなたと同じフォルダにダウンロードされます。


トラブルシューティング

## SSLエラー

MacでPython 3のSSLエラーが表示される場合は、Finder – >アプリケーション – > Python 3 – >「Install Certificates.command」をクリックしてファイルを実行してください。

## googleimagesdownload:コマンドが見つかりません

上記のコマンドを使用しているときに、 Error: -bash: googleimagesdownload: command not found場合は、正しいパス変数を設定する必要があります。

レポの詳細を取得するには、次のコマンドを実行します。

$ pip show -f google_images_download

次のような結果が得られます:

Location: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Files:
  ../../../bin/googleimagesdownload

彼らは一緒に: /Library/Frameworks/Python.framework/Versions/2.7/binパスに追加する必要があります:

$ export PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin"

## [Errno 13]ディレクトリ ‘downloads’を作成する権限が拒否されました

コマンドを実行すると、現在のディレクトリ(コマンドを実行しているディレクトリ)にイメージがダウンロードされます。 ダウンロードディレクトリを作成する際にアクセス権拒否エラーが発生した場合は、書き込み権限のあるディレクトリに移動して、コマンドを再度実行してください。

##ライブラリのインストール中に許可が拒否されました

MACとLinuxでは、pipを使用してライブラリをインストールするときに権限が拒否されたら、ユーザーインストールを実行してください。

$ pip install google_images_download --user

また、 sudo pip install google_images_downloadを使用してスーパーユーザーとしてpip installを実行することもできますが、システムレベルのパッケージで問題が発生する可能性があるため、一般的には良い考えではありません。

##クロームドライバのインストール(Selenium付き)

キーワードごとに100以上の画像をダウンロードする場合は、「chromeriver」と一緒に「selenium」をインストールする必要があります。

pipをインストールしてライブラリをインストールしたり、setup.pyファイルを実行すると、自動的にSeleniumがマシンにインストールされます。 また、お使いのマシンにChromeブラウザが必要です。 クロムドライバーの場合:

お使いのオペレーティングシステムに基づいて正しいchromedriverダウンロードしてください。

何らかの理由でWindowsMACで問題が発生した場合は、現在のディレクトリの下にダウンロードしてコマンドを実行してください。

Linuxで Google Chromeブラウザのインス​​トールに問題がある場合は、このCentOSまたはAmazon LinuxガイドまたはUbuntuガイドを参照してください。

すべてのオペレーティングシステムで、あなたのマシンにダウンロードしたchromedriverのパスを指定するには、 ‘–chromedriver’または ‘-cd’引数を使用する必要があります。

構造

以下の図は、コードロジックを表しています。

寄稿

誰でもこのスクリプトに貢献することを歓迎します。 変更を加えたい場合は、プルリクエストを開きます。 問題とディスカッションについては、 Issue Trackerを参照してください

このレポの目的は、シンプルでスタンドアロンの、後方互換性のある第三者の依存関係を保つことです。

免責事項

このプログラムを使用すると、Googleからたくさんの画像をダウンロードできます。 著作権の言葉に違反する画像をダウンロードしたり、使用したりしないでください。 Google画像検索は、単に画像にインデックスを付けて検索する検索エンジンです。 独自の画像を生成するものではないため、いずれの画像にも著作権がありません。 画像の元の作成者は著作権を所有しています。

米国で公開された画像は、明示的に著作権に関する警告を表示していなくても、自動的に所有者の著作権があります。 「フェアユース」の場合を除いて、所有者の許可なく著作権画像を複製することはできません。また、弁護士の警告、休止中の手紙、著作権訴訟に遭う危険性があります。 その使用の前に非常に注意してください!







-hardikvasa
-, , , , , , , , , , , , ,

執筆者: