[PYTHON] Collection d'images à l'aide de l'API Google Custom Search

Désormais, j'aimerais commencer à étudier sérieusement le Deep Learning. Avant cela, nous devons réfléchir à l'endroit où obtenir la grande quantité de données nécessaires à l'apprentissage.

L'une des méthodes que j'ai proposées est de collecter des images à partir du bot d'images Twitter. L'autre utilise des moteurs de recherche d'images tels que Google et Bing. Il faudra un certain temps pour trouver un bon bot, alors utilisons d'abord l'API de recherche. L'API de recherche Bing semble se terminer à la fin de cette année, je vais donc choisir Google cette fois.

Paramètres des moteurs de recherche

Créez un nouveau moteur de recherche avec Recherche personnalisée. Les paramètres sont les suivants.

キャプチャ.JPG ① Activez la recherche d'images ② Sélectionnez "Rechercher sur tout le Web" ③ Supprimer le site de recherche ④ Obtenir l'ID à partir de l'ID du moteur de recherche L'ID est du type "chaîne numérique: chaîne alphabétique". Il semble que la chaîne numérique soit l'ID utilisateur et la chaîne alphabétique l'ID moteur.

Acquérir l'API de recherche personnalisée

Activez l'API de recherche personnalisée dans la console Google Cloud Platform (https://console.cloud.google.com/apis) et créez une clé API avec vos informations d'identification. 222.JPG

Créer un script Python

https://www.googleapis.com/customsearch/v1?key=[API_KEY]&cx=[CUSTOM_SEARCH_ENGINE]&q=[search_item]

Vous pouvez rechercher avec. Ajoutez searchType = image pour rechercher des images, num = xx & start = yy est une page nation pour obtenir un grand nombre d'images. Selon la référence (https://developers.google.com/custom-search/json-api/v1/reference/cse/list?hl=ja), num est un entier de 1 à 10. En d'autres termes, vous pouvez rechercher jusqu'à 10 à la fois.

Le script est basé sur le code de tukiyo3.

get_image.py


#-*- coding:utf-8 -*-
#[email protected] 2016/11/21
import urllib.request
from urllib.parse import quote
import httplib2
import json 
import os

API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
CUSTOM_SEARCH_ENGINE = "12345648954985648968:xxxxxxxxx"

def getImageUrl(search_item, total_num):
 img_list = []
 i = 0
 while i < total_num:
  query_img = "https://www.googleapis.com/customsearch/v1?key=" + API_KEY + "&cx=" + CUSTOM_SEARCH_ENGINE + "&num=" + str(10 if(total_num-i)>10 else (total_num-i)) + "&start=" + str(i+1) + "&q=" + quote(search_item) + "&searchType=image"
  print (query_img)
  res = urllib.request.urlopen(query_img)
  data = json.loads(res.read().decode('utf-8'))
  for j in range(len(data["items"])):
   img_list.append(data["items"][j]["link"])
  i=i+10
 return img_list
 
def getImage(search_item, img_list):
 opener = urllib.request.build_opener()
 http = httplib2.Http(".cache")
 for i in range(len(img_list)):
  try:
   fn, ext = os.path.splitext(img_list[i])
   print(img_list[i])
   response, content = http.request(img_list[i])
   with open(search_item+str(i)+ext, 'wb') as f:
    f.write(content)
  except:
   print("failed to download images.")
   continue

if __name__ == "__main__":
 img_list = getImageUrl("chien", 5)
 print(img_list)
 getImage("dog", img_list)

Le code n'est pas si joli, mais je vais le partager. Je l'ai également mis dans Github.

fin

L'API Google Custom Search est pratique, mais le niveau d'utilisation gratuit est de 100 requêtes / jour, et j'ai utilisé 70% uniquement pour tester le script. Lorsque vous l'utilisez réellement, vous devez le payer. Après tout, je souhaite collecter des images gratuitement, je vais donc essayer d'autres méthodes (comme Twitter).

Mise à jour du 24/11/2016 J'ai trouvé un bon moyen de collecter des images! ↓ http://d.hatena.ne.jp/shi3z/20160309/1457480722 Le script python dans le lien ci-dessus a été modifié pour prendre en charge python3. → GitHub

Recommended Posts

Collection d'images à l'aide de l'API Google Custom Search
Collectez vous-même des données d'image de formation au machine learning (API de recherche personnalisée Google Pikachu)
Collectez un grand nombre d'images à l'aide de l'API de recherche d'images de Bing
Appelez l'API Bing Image Search v5 depuis Python pour collecter des images
[Python3] Google translate google translation sans utiliser l'API
Créez une application qui recherche uniquement à l'aide de l'API de recherche personnalisée Google avec Python 3.3.1 dans Bottle
Estimation de catégorie à l'aide de l'API de reconnaissance d'image de docomo
Procédure de transcription vocale à l'aide de l'API Google Cloud Speech
Enregistrer l'image du chien à partir de la recherche d'images Google
Segment d'image utilisant Oxford_iiit_pet dans Google Colab
Créer une feuille de calcul Google à l'aide de l'API Python / Google Data
Collecte de données FX à l'aide de l'API REST OANDA
Enregistrez des événements personnalisés à l'aide de l'API Shotgun
[Python] Téléchargez l'image d'origine à partir de la recherche d'images Google
Obtenir l'URL de l'image à l'aide de l'API Flickr en Python
Méthode de collecte d'images
J'ai essayé d'utiliser l'API Google Cloud Vision
Obtenez des images Google Recherche d'images dans leur taille d'origine
Intégration de la banque de données Google App Engine et de l'API de recherche
[GoogleCloudPlatform] Utiliser l'API Google Cloud avec la bibliothèque cliente d'API
Une histoire sur un débutant Python essayant d'obtenir des résultats de recherche Google à l'aide de l'API
Importez un fichier JPG à l'aide de l'API Google Drive en Python
Comment analyser avec Google Colaboratory à l'aide de l'API Kaggle
Procédure de transcription vocale à l'aide de Python et de l'API Google Cloud Speech
Utiliser l'API de recherche de la Bibliothèque du Parlement national en Python
Reconnaissance vocale des fichiers par l'API Google Speech v2 à l'aide de Python
Segmentation d'image à l'aide de U-net
Rechercher sur Twitter avec Python
J'ai essayé de rechercher des vidéos à l'aide de l'API de données Youtube (débutant)
Reconnaissance d'image avec API à partir de zéro connaissance avec AutoML Vision
Essayez une recherche similaire de recherche d'images à l'aide du SDK Python [Recherche]
[Python scraping] J'ai essayé la recherche Google Top10 en utilisant Beautifulsoup et sélénium
Essayez de juger des photos de plats à l'aide de l'API Google Cloud Vision
Publions l'API de super résolution à l'aide de Google Cloud Platform
L'histoire de la création d'une base de données à l'aide de l'API Google Analytics
Exportez les informations produit au format CSV à l'aide de l'API de recherche de produits Rakuten [Python]
Regroupez et analysez les prix des produits à l'aide de l'API Rakuten Product Search [Python]
Jouez avec l'API de données YouTube v3 à l'aide du client Python de l'API Google