Pour pouvoir utiliser cette bibliothèque, vous devez activer l'API de recherche personnalisée Google, générer des informations d'identification de clés d'API et définir un projet:
Visitez https://console.developers.google.com et créez un projet.
Visitez https://console.developers.google.com/apis/library/customsearch.googleapis.com et activez "API de recherche personnalisé" pour votre projet.
Visitez https://console.developers.google.com/apis/credentials et générez des informations d'identification de clés de l'API pour votre projet.
Visitez https://cse.google.com/cse/all et dans le formulaire Web où vous créez / modifiez votre moteur de recherche personnalisé Activer l'option "Recherche d'image" et pour "Sites pour rechercher" Option Sélectionnez "Rechercher le Web entier mais soulignez-vous Sites inclus ".
Après avoir mis en place votre compte Google Developers et votre projet, vous devriez avoir reçu la clé API et le projet CX de développeurs.
Installez le package à partir de PYPI.org:
> PIP installe Google-iMages-Search
# sans variables d'environnement:> Gimages -K __our_DEV_API_KEY__ -C __AUR_PROject_cx__ Recherche -Q Puppies
# avec des variables d'environnement:> Exporter gcs_developer_key = __ your_dev_api_key __> exporter gcs_cx = __ your_project_cx __ >> gimages search -q chiots
# Recherche uniquement (pas de téléchargement et de redimensionner):> Gimages Recherche -Q Puppies
# Recherche et téléchargement uniquement (pas de redimensionner):> Gimages Recherche -Q Puppies -d / Path / on / votre / Drive / Where / Images / devraient / être / téléchargés
# Recherche, télécharger et redimensionner:> Gimages Recherche -Q Puppies -d / Path / -W 500 -H 500
De Google_images_Search Import GoogleImageSSearch # Vous pouvez fournir une clé API et CX à l'aide d'arguments, # ou vous pouvez définir des variables d'environnement: gcs_developer_key, gcs_cxgis = googleimagessearch (`` votre_dev_api_key '', `` your_project_cx ') # définir les paramètres de recherche # pour l'option pour un param de recherche couramment utilisé param Ci-dessous pour une référence facile. # pour param marqué avec '##': # - Multiselect n'est actuellement pas possible. Choisissez une seule option uniquement # - Ce param peut également être omis à partir de _search_params si vous ne souhaitez définir aucune valeur_search_params = {'q': '...', 'num': 10, 'filetype': 'jpg | gif | png ',' droits ':' cc_publicdomain | cc_attribute | cc_sharealike | cc_noncommercial | cc_nonderived ',' safe ':' actif | high | moyen | off | SafeUndEfined ', ##' iMgType ':' Clipart | Face | lineart | Stock | Photo | Animated | ImgTypeUndEfined ', ##' Imgsize ':' ÉNORME | ICON | Large | Moyenne | Small | XlARGE | XXLARGE | IMGSIZEUNDEFINED ', ##' IMGDEMINANTCOLOR ':' Black | Blue | Brown | Grey | Green | Green | Orange | Pink | Purple | Red | Teal | Blanc | Jaune | IMGDOMINANTCOLORUNDEFINED ', ##' IMGCOLORTYPE ':' Color | Gray | Mono | Trans | ImgcolorTyPydEnDefined '##} # Ceci ne recherchera que des images: gis.search (Search_Params = _Search_Params unique ) # Ceci recherchera et téléchargera: gis.search (search_params = _search_params, path_to_dir = '/ path /') # Ceci rechercher, télécharger et redimensionner: gis.search (search_params = _search_params, path_to_dir = '/ path /', width = 500, hauteur = 500) # Recherche d'abord, puis téléchargez et redimensionnez après: gis.search (search_params = _search_params) pour l'image dans gis.results (): image.url # image directe urlimage.referrer_url # image référent URL (source) Image.Download ('/ path /') # télécharger imageimage.resize (500, 500) # Resize téléchargé ImageImage.Path # Path de fichier local téléchargé
Parfois, vous voudriez enregistrer des images avec le nom de fichier de votre choix.
de google_images_search import googleimagessearchgis = googleImageSsearch ('your_dev_api_key', 'your_project_cx') _ search_params = {...} gis.search (search_params = _search_params, path_to_dir = '...', personnalisé_image_name = 'my_image')
La limite de l'API de Google est de 10 images par demande.
Cela signifie que si vous voulez 123 images, il sera divisé en interne en 13 demandes.
Gardez à l'esprit que l'obtention de 123 images prendra un peu plus de temps si la validation de l'image est activée.
de google_images_search import googleimagessearchgis = googleimagessearch ('your_dev_api_key', 'your_project_cx') _ search_params = {'q': '...', 'num': 123, } # Obtenez 123 premières images: gis.search (search_params = _search_params) # Prenez les 123 images suivantes de Google Images Search: gis.next_page () pour l'image dans gis.results (): ...
Chaque URL d'image est validée par défaut.
Cela signifie que chaque URL d'image sera vérifiée si les en-têtes peuvent être récupérés et validés.
Avec cela, vous n'avez pas besoin de vous méfier de quelle URL d'image est réellement téléchargeable ou non.
L'inconvénient est le temps nécessaire pour valider.
Si vous préférez, vous pouvez l'éteindre.
de google_images_search import googleimagessearch # désactiver la validation avec "valide_images" agrumentgis = googleImageSearch ('your_dev_api_key', 'your_project_cx', valide_images = false)
Par défaut, ProgressBar n'est pas activé.
Uniquement dans CLI Progressbar est activé par défaut à l'aide de la bibliothèque de malondes.
En mode programmatique, il peut être activé de deux manières:
en utilisant le mode contextuel (malédictions)
Utilisation de votre fonction de barre de progression personnalisée
De Google_images_Search Importer GoogleImageSSearch # Utilisation de votre fonction ProgressBar personnalisée MY_PROGRESSBAR (URL, Progress): Print (URL + '' + Progress + '%') gis = googleMageSSearch ('your_dev_api_key', 'your_project_cx', progressbar_fn = my_progressbar) _SEARCH_PARAMS = {. ..} gis.search (search_params = _search_params) # Utilisation du mode contextuel (maudits) avec googleImageSearch ('your_dev_api_key', 'your_project_cx') comme gis: _search_params = {...} gis.search (search_params = _search_params) ...
de google_images_search import googleimagessesearchfrom io import bytesiofrom pIl import image # Dans ce cas, nous utilisons PIL pour garder le bytesio en tant qu'objet d'image # de cette façon, nous n'avons pas à attendre les temps de sauvegarde / d'écriture de disque # L'image est simplement maintenue dans Mémoire # Cet exemple doit afficher 3 images de chiots! gis = googleImageSearch ('your_dev_api_key', 'your_project_cx') my_bytes_io = bytesio () gis.search ({'q': 'chiots', 'num': 3}) pour l'image pour l'image pour l'image pour l'image pour l'image pour l'image pour l'image pour l'image pour l'image pour l'image pour l'image pour l'image pour l'image pour l'image Dans gis.results (): # Ici, nous disons à l'objet Bytesio de revenir à l'adresse 0my_bytes_io.seek (0) # Prenez l'image brute dataraw_image_data = image.get_raw_data () # Cette fonction écrit les données d'image brutes à l'objectimage.copy_to () # MY_BYTES_IO, RAW_IMAGE_DATA) # ou sans les données brutes qui seront automatiquement prises # dans le copy_to () methodimage.copy_to (my_bytes_io) # Nous retournons à l'adresse 0 pour que pil puisse le lire du début à finitionmy_bytes_io.seek (0) # # # Créer une image temporaire objetTemp_img = image.open (my_bytes_io) # montrez-le dans le système par défaut photo VueserTemp_img.show ()