Para poder usar esta biblioteca, você precisa ativar a API de pesquisa personalizada do Google, gerar credenciais principais da API e definir um projeto:
Visite https://console.developers.google.com e crie um projeto.
Visite https://console.developers.google.com/apis/library/customsearch.googleapis.com e habilite "API de pesquisa personalizada" para o seu projeto.
Visite https://console.developers.google.com/apis/credentials e gerar credenciais importantes da API para o seu projeto.
Visite https://cse.google.com/cse/all e no formulário da web, onde você cria/edita o seu mecanismo de pesquisa personalizado, ativar a opção "Pesquisa de imagem" e para "sites para pesquisar" Selecione "Pesquise a web inteira, mas enfatize sites incluídos ".
Depois de configurar sua conta e projeto do Google Developers, você deve ter recebido a chave da API dos desenvolvedores e o Projeto CX.
Instale o pacote do Pypi.org:
> PIP Instale o Google-Search
# sem variáveis de ambiente:> gimages -k __your_dev_api_key__ -c __your_project_cx__ Pesquisa -q cachorrinhos
# com variáveis de ambiente:> exportar gcs_developer_key = __ your_dev_api_key __> export gcs_cx = __ your_project_cx __ >> gimages search -q cachorrinhos
# Pesquise apenas (sem download e redimensionamento):> GIMAGES Pesquisa -Q Filhotes
# Pesquise e download somente (sem redimensionamento):> gimages pesquisar -q filhotes -d/path/on/your/drive/where/imagens/deve/ser/ser/baixar
# Pesquise, faça o download e redimensione:> gimages search -q puppies -d / path / -w 500 -h 500
Do google_images_search Importar GoogleImagessearch# Você pode fornecer a chave da API e CX usando argumentos,# ou definir variáveis de ambiente: gcs_developer_key, gcs_cxgis = googleimagessearch ('your_dev_api_key', 'your_project_cx')# pesquisa Abaixo para facilitar a referência.# Para parâmetros marcados com '##':# - multisselect não é viável atualmente. Escolha apenas uma opção# - este parâmetro também pode ser omitido de _search_params se você não deseja definir nenhum value_search_params = {'q': '...', 'num': 10, 'FileType': 'jpg | gif | png ',' direitos ':' cc_publicdomain | cc_attribute | cc_sharealike | cc_noncomercial | cc_nonderived ',' seguro ':' ativo | high | médio | off | spearundefined ', ##' imgtype ':' clipart | face | lineart | estoque | Foto | animada | imgtypendeDefined ', ##' imgsize ':' enorme | icon | grande | médio | small | xlarge | xxlarge | imgsizendefined ', ##' imgdominAntColor ':' Black | azul | marrom | cinza | verde | Pink | roxo | vermelho | azedeira | branco | amarelo | imgdominAntColorundefined ', ##' imgcolortype ':' cor | cinza | mono | trans | imgcolortypendefined '##}#Isso só procurará imagens: gis.search (search_params = _sechart_params )# Isso pesquisará e baixará: gis.search (search_params = _search_params, path_to_dir = '/path/')# Isso pesquisará, baixará e redimensionará: gis.search (search_params = _search_params, path_to_dir = '//', width = 500, altura = 500) # Pesquise primeiro, depois faça o download e redimensione depois: gis.search (search_params = _search_params) para imagem em gis.results (): imagem.url # Image Urlimage.ReferRer_Url # Image referent (fonte) Image.Download ('/Path/') # Download ImageImage.Resize (500, 500) # redimensione o ImageImage.
Às vezes, você deseja salvar imagens com o nome do arquivo de sua escolha.
de google_images_search importar googleimagessearchgis = googleImagessearch ('your_dev_api_key', 'your_project_cx') _ search_params = {...} gis.search (search_params = _search_params, path_to_dir = '...', custom_image_name = 'my_image')
O limite da API do Google é de 10 imagens por solicitação.
Isso significa que, se você quiser 123 imagens, ela será dividida internamente em 13 solicitações.
Lembre -se de que obter 123 imagens levará um pouco mais de tempo se a validação da imagem estiver ativada.
de google_images_search importar googleimagessearchgis = googleImagessearch ('your_dev_api_key', 'your_project_cx') _ search_params = {'q': '...', 'num': 123, }# Obtenha as primeiras 123 imagens: gis.search (search_params = _search_params)# tome as próximas 123 imagens do Google Pesquisa de imagens: gis.next_page () para imagem em gis.results (): ...
Cada URL da imagem é validado por padrão.
Isso significa que cada URL da imagem será verificado se os cabeçalhos puderem ser buscados e validados.
Com isso, você não precisa cair sobre qual URL da imagem é realmente para download ou não.
A desvantagem é o tempo necessário para validar.
Se preferir, você pode desligá -lo.
Do google_images_search importar googleimagessearch# desative a validação com "validate_images" agrumentgis = googleImagessearch ('your_dev_api_key', 'your_project_cx', valid_images = false)
Por padrão, o ProgressBar não está ativado.
Somente na barra de progresso da CLI é ativado por padrão usando a biblioteca de maldições.
Em um modo programático, ele pode ser ativado de duas maneiras:
Usando o modo contextual (maldições)
Usando sua função de barra de progresso personalizada
De Google_Images_Search Importar GoogleImagessearch# Usando sua função de progressBar personalizada My_ProgressBar (url, progresso): print (url + '' ' + progress +'%') gis = googleImagessearch (' your_dev_api_key ',' your_project_cx ', progressbar_fn = myRev_api_key', 'your_project_cx', progressbar_fn = myR_PRATER_PROTSBETR = MYDEV_APTER. ..} gis.search (search_params = _search_params)# usando o modo contextual (maldições) com o googleimagessearch ('your_dev_api_key', 'your_project_cx') como gis: _search_params = {...} gis.search (busca_amss = _earch = _earch = {... ...} gis.secha ...
Do google_images_search importar googleImagessearch de io io importar bytesiofrom pil importar imagem# Nesse caso, estamos usando pil para manter o bytesio como um objeto de imagem# dessa maneira não precisamos esperar para salvar / gravar tempos de gravação# a imagem é simplesmente mantida em Memória# Este exemplo deve exibir 3 imagens de filhotes! em gis.results ():# Aqui dizemos ao objeto Bytesio voltar para abordar 0my_bytes_io.seek (0)# Tome imagem bruta Dataaraw_image_data = image.get_raw_data ()# Esta função grava os dados da imagem bruta no objectimage.copy_to ( my_bytes_io, raw_image_data)# ou sem os dados brutos que serão tirados automaticamente# dentro do copy_to () methodimage.copy_to (my_bytes_io)# voltamos para endereçar 0 novamente para que o PIL possa lê -lo do start para finalmente_bytes_io.seek (0)# Crie uma imagem temporária objectTemp_Img = image.open (my_bytes_io) # mostre -o no sistema padrão viewerTemp_img.show ()