Python скрипт для "Google search by image" - PullRequest
8 голосов
/ 03 декабря 2011

Я проверил API поиска Google, и похоже, что они не выпустили API для поиска "изображений".Итак, мне было интересно, существует ли скрипт / библиотека Python, с помощью которого я могу автоматизировать «функцию поиска по изображению».

Ответы [ 3 ]

2 голосов
/ 24 февраля 2016

Это было достаточно раздражающим, чтобы понять, что я решил добавить комментарий к первому результату переполнения стека, связанному с питоном, для "поиска по картинкам в Google".Самая раздражающая часть всего этого - настройка вашего правильного приложения и пользовательского поискового движка (CSE) в веб-интерфейсе Google, но как только вы получите свой 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
2 голосов
/ 03 декабря 2011

API недоступен, но вы можете проанализировать страницу и имитировать браузер, но я не знаю, сколько данных вам нужно проанализировать, потому что Google может ограничить или заблокировать доступ.

Вы можете имитировать браузер, просто используя urllib и устанавливая правильные заголовки, но если вы думаете, что синтаксический анализ сложных веб-страниц может быть затруднен с помощью python, вы можете напрямую использовать браузер без заголовка, например phontomjs , внутри браузер тривиально получить правильные элементы, используя javascript / DOM

Обратите внимание, прежде чем пытаться все это проверить Google's TOS

0 голосов
/ 31 октября 2012

Вы можете попробовать это: https://developers.google.com/image-search/v1/jsondevguide#json_snippets_python Это устарело, но, кажется, работает.

...