2017年2月24日金曜日

[Python3] Google Custom Search API の検索結果より画像ファイルをダウンロードする

Google Custom Search API を使用して一つの検索ワードにつき、100イメージをダウンロードできるようになりました。これを繰り返していけば、画像認識を試すための教師データは確保できそう。

# pylint: disable-msg=C0103

"""
Google Custom Search API を Python3 から実行する その3
"""
import sys
import urllib.request
import urllib.parse
import json
import time

apikey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
engineid = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
query = urllib.parse.quote_plus('長澤まさみ', encoding='utf8')

count = 0

for i in range(10):
    start = 1 + (i * 10)
    url = ('https://www.googleapis.com/customsearch/v1?'
           'key=%s&cx=%s&start=%s&imgType=face&searchType=image&q=%s'
          ) % (apikey, engineid, start, query)
    try:
        response = urllib.request.urlopen(url)
        result = json.loads(response.read().decode('utf8'))
        for item in result['items']:
            count += 1
            fname = ('/tmp/%d.jpg') % (count)
            try:
                # 検索結果より画像をダウンロードし、連番のファイル名で保存する
                # リンク切れ等は無視する
                response = urllib.request.urlopen(item['link'])
                with open(fname, 'wb') as fout:
                    fout.write(response.read())
            except urllib.error.HTTPError as httperr:
                pass
            except urllib.error.URLError as urlerr:
                pass
    except urllib.error.HTTPError as httperr:
        print(httperr)
        time.sleep(10)

sys.exit(0)

0 件のコメント:

コメントを投稿