2011-12-02 13 views
8

私はGoogle Search APIをチェックしており、「画像」を検索するためのAPIをリリースしていないようです。ですから、私は "画像検索機能"を自動化するためのPythonスクリプト/ライブラリが存在するかどうか疑問に思っていました。「Googleによる画像検索」用のPythonスクリプト

+0

Googleは、発生する可能性のあるリソースについてGoogleが心配していると思っています。それは素晴らしいことだtho – Coffee

+0

このpythonスクリプトは助けるかもしれない:http://bit.ly/QjIy21 – EyalAr

答えて

2

利用可能なAPIはありませんが、です。ページを解析してブラウザを模倣しますが、Googleがアクセスを制限またはブロックする可能性があるため、解析する必要のあるデータ量はわかりません。

urllibを使用して正しいヘッダーを設定するだけでブラウザを模倣することができますが、複雑なWebページの解析がPythonから難しいと思われる場合は、phontomjsのようなヘッドレスブラウザを直接使用できますこれは、非推奨が、動作しているようだ https://developers.google.com/image-search/v1/jsondevguide#json_snippets_python :あなたはこれを試すことができ、GoogleのTOS

+0

"画像によるGoogleの検索"では、画像をドラッグして画面にドロップしなければならない。私は確信していません、どのように私はPythonを使用してそれを自動化することができます –

+0

ドロップ画像をドラッグすると、ブラウザは、Googleに画像ファイルのデータを送信する、あなたもPythonから行うことができますが、ベットはphantomjsルートに行くことです –

-1

を確認し、このすべてをしようとする前にはJavaScript/DOM

注意を使用して正しい要素を取得します。

+0

残念ながら、これは "画像による検索"機能を提供せず、テキスト内の検索語句のみをサポートしています。 JSON APIの全ドキュメントはhttps://developers.google.com/image-search/v1/devguideにあります – Shnatsel

2

これは、 "script google image search"の最初のpython関連のstackoverflowの結果にコメントを投じたいと思っていたことを理解するのには迷惑でした。このすべての中で最も迷惑な部分は、GoogleのウェブUIで適切なアプリケーションとカスタム検索エンジン(CSE)を設定することですが、APIキーとCSEを設定したら、次のようにしてください:

#!/usr/bin/env python 

# save top 10 google image search results to current directory 
# https://developers.google.com/custom-search/json-api/v1/using_rest 

import requests 
import os 
import sys 
import re 
import shutil 

url = 'https://www.googleapis.com/customsearch/v1?key={}&cx={}&searchType=image&q={}' 
apiKey = os.environ['GOOGLE_IMAGE_APIKEY'] 
cx = os.environ['GOOGLE_CSE_ID'] 
q = sys.argv[1] 

i = 1 
for result in requests.get(url.format(apiKey, cx, q)).json()['items']: 
    link = result['link'] 
    image = requests.get(link, stream=True) 
    if image.status_code == 200: 
    m = re.search(r'[^\.]+$', link) 
    filename = './{}-{}.{}'.format(q, i, m.group()) 
    with open(filename, 'wb') as f: 
     image.raw.decode_content = True 
     shutil.copyfileobj(image.raw, f) 
    i += 1 
関連する問題