🎯 Um navegador em nuvem personalizável e anti-detecção alimentado por Chromium desenvolvido internamente, projetado para rastreadores web e agentes de IA. 👉Experimente agora
De volta ao blog

API de Raspagem de Imagens do Google: Ler o Vertical de Imagens como JSON

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

10-Jun-2026

Principais Conclusões:

  • Uma POST, sem navegador. Os dados do Google Images vêm de uma única POST para o ator scraper.google.search com tbm: "isch". A API Scraper renderiza a página e a analisa do lado do servidor; você lê o JSON de volta.
  • O vertical de imagem é um campo de entrada. tbm: "isch" altera o ator de busca do Google para o vertical de Imagens; q contém sua consulta. Tudo o mais é opcional.
  • Um cabeçalho de autenticação em todos os lugares. Cada chamada contém x-api-token: <sua chave>. Uma chave de conta cobre o ator e todos os outros atores scraper.*.
  • JSON analisado, achatado no nível superior. O ator retorna metadata, search_information e suggested_searches diretamente — sem um wrapper result para desempacotar. Cada chip de refinamento em suggested_searches contém uma miniatura data:image/jpeg;base64 em linha.
  • A grade completa de imagens está em metadata.rawUrl. O objeto analisado apresenta os chips de refinamento e os metadados de busca; metadata.rawUrl aponta para a página do Google Images totalmente renderizada armazenada, quando você precisa de cada URL de imagem que o objeto analisado não achata.
  • Gratuito para começar. Novas contas Scrapeless incluem créditos gratuitos da API Scraper — inscreva-se em app.scrapeless.com.

Introdução: ler o vertical de Imagens como JSON

O Google Images se baseia em um dos maiores índices visuais na web aberta, e muito trabalho depende do que ele apresenta: pesquisa de produtos visuais, monitoramento de marcas e logotipos, construção de conjuntos de dados de imagem para treinamento de modelos, rastreamento de como uma consulta se apresenta em diferentes regiões e coleta de referências de design em grande escala. A consulta é a entrada; uma grade de imagens e uma linha de chips de refinamento é a saída.

Obter essa saída programaticamente é a parte difícil. A página de Imagens é renderizada em JavaScript, as miniaturas estão embutidas como base64 dentro do payload do script, os chips de refinamento e URLs de imagens estão enterrados nos dados de hidratação da página, e uma solicitação anônima recebe um desafio em vez de uma grade. Um scraper feito à mão precisa renderizar a página, passar pela camada anti-bot e reverter a engenharia da marcação — três tarefas, todas as quais mudam quando o Google publica um redesign.

Este guia descreve o ator scraper.google.search na API Scraper do Scrapeless, executado com tbm: "isch". Uma solicitação HTTP retorna um objeto analisado mais uma cópia armazenada da página de imagem renderizada. Sem navegador para acionar, sem parser para manter. O exemplo trabalhado abaixo é a captura real de q: "golden retriever"; um guia acompanhante da API Scraper cobre a família de respostas de IA com a mesma forma de solicitação.


Por que a API Scraper para Google Images

  • Sem navegador, sem parser a manter. O ator renderiza e analisa a página de Imagens no servidor; você recebe campos estruturados, não um DOM para percorrer ou um blob base64 para decodificar manualmente.
  • Uma entrada altera o vertical. O mesmo ator de busca do Google serve resultados da web e imagens — defina tbm: "isch" e a resposta retorna como o vertical de Imagens.
  • Egress e renderização residencial estão embutidos. Geo-rotações e renderização em JavaScript funcionam dentro do ator; você envia { actor, input } e lê o resultado.
  • Uma forma para ler. O objeto de Imagens analisado é achatado no nível superior, assim um wrapper de cliente escrito uma vez lida a resposta sem desempacotar envelopes aninhados.

Obtenha sua chave de API no plano gratuito em app.scrapeless.com. O ator de busca do Google é parte do Deep SerpApi, que está no catálogo de preços.


Pré-requisitos

  • Uma conta Scrapeless e chave de API — inscreva-se em app.scrapeless.com.
  • curl para o teste rápido, ou Python 3.10+ para o cliente abaixo.
  • Familiaridade básica com HTTP e JSON.

Armazene sua chave no ambiente para que nunca apareça no código:

bash Copy
export SCRAPELESS_API_KEY=sua_chave_api_aqui

A solicitação

O Google Images utiliza o endpoint site/SERP. Você nomeia o ator, lhe dá uma entrada e envia sua chave no cabeçalho.

  • Endpoint: POST https://api.scrapeless.com/api/v1/scraper/request
  • Ator: scraper.google.search
  • Cabeçalho de autenticação: x-api-token: $SCRAPELESS_API_KEY

O corpo é { "actor": "<name>", "input": { … } }. Para o vertical de Imagens, a entrada tem dois campos:

json Copy
{
  "actor": "scraper.google.search",
  "input": { "q": "golden retriever", "tbm": "isch" }
}
campo de entrada obrigatório descrição
q sim a string de consulta de pesquisa de imagem
tbm sim vertical de pesquisa — "isch" seleciona Google Imagens
hl não idioma da interface do usuário, por exemplo, "en"
gl não país / localidade, por exemplo, "us"
google_domain não domínio do Google a ser acessado, por exemplo, ".google.com"

Exemplo — curl e Python

A verificação mais rápida é uma única chamada curl:

bash Copy
curl -sS -X POST https://api.scrapeless.com/api/v1/scraper/request \
  -H "Content-Type: application/json" \
  -H "x-api-token: ${SCRAPELESS_API_KEY}" \
  -d '{
    "actor": "scraper.google.search",
    "input": { "q": "golden retriever", "tbm": "isch" }
  }'

A mesma solicitação em Python, com a resposta analisada diretamente em um dicionário:

python Copy
import os
import json
import requests

ENDPOINT = "https://api.scrapeless.com/api/v1/scraper/request"


def scrape_google_images(query: str) -> dict:
    resp = requests.post(
        ENDPOINT,
        headers={
            "Content-Type": "application/json",
            "x-api-token": os.environ["SCRAPELESS_API_KEY"],
        },
        json={"actor": "scraper.google.search", "input": {"q": query, "tbm": "isch"}},
        timeout=120,
    )
    resp.raise_for_status()
    return resp.json()


if __name__ == "__main__":
    data = scrape_google_images("golden retriever")
    # google.search achata a saída analisada no nível superior,
    # então data.get("result", data) recorre à resposta inteira.
    print(json.dumps(data.get("result", data), indent=2, ensure_ascii=False))

Como o ator de pesquisa do Google achata sua saída analisada no nível superior, não há uma chave result para acessar — data.get("result", data) simplesmente retorna a resposta inteira, e você lê search_information e suggested_searches diretamente dela.

Obtenha sua chave de API no plano gratuito: app.scrapeless.com


O Que Você Recebe de Volta

Para o vertical de Imagens, o ator apresenta um envelope metadata do Scrapeless, a search_information que o Google retorna, e a linha de chips de refinamento de imagem (suggested_searches) que o Google renderiza acima da grade. Cada chip carrega seu próprio miniatura em linha. Esta é a captura real para q: "golden retriever", tbm: "isch":

json Copy
// Captura real para q:"golden retriever", tbm:"isch".
// miniaturas base64 aparadas; suggested_searches abreviadas para 2 de 5 chips — amostra ilustrativa.
{
  "metadata": {
    "engine": "google.search",
    "rawUrl": "https://api.scrapeless.com/storage/scrapeless.scraper.google.search/…_1781025000.html"
  },
  "pagination": {},
  "search_information": {
    "organic_results_state": "Resultados para grafia exata",
    "query_displayed": "golden retriever",
    "total_results": 0,
    "time_taken_displayed": ""
  },
  "suggested_searches": [
    {
      "name": "Filhote",
      "link": "https://www.google.com/search?sca_esv=…&gl=us&q=golden+retriever+puppy&uds=…&udm=2&sa=X&…",
      "uds": "",
      "q": "Filhote golden retriever",
      "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/…"
    },
    {
      "name": "Fofo",
      "link": "https://www.google.com/search?sca_esv=…&gl=us&q=cute+golden+retriever&uds=…&udm=2&sa=X&…",
      "uds": "",
      "q": "Fofo golden retriever",
      "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/…"
    }
  ]
}

Campo por campo:

campo tipo o que contém
metadata.engine string o motor do ator que atendeu à solicitação — "google.search"
metadata.rawUrl string (URL) cópia armazenada da página de Google Imagens completamente renderizada; acessá-la para a grade completa de imagens
pagination objeto cursores de paginação; um objeto vazio nesta captura
search_information.query_displayed string a consulta que o Google retornou ("golden retriever")
search_information.organic_results_state string o estado de grafia / resultados ("Resultados para grafia exata")
search_information.total_results número a contagem de resultados que o Google relatou — 0 para o vertical de imagem aqui
search_information.time_taken_displayed string a string de tempo do Google; vazia nesta captura
suggested_searches[] array os chips de refinamento de imagem renderizados acima da grade
suggested_searches[].name string o rótulo do chip ("Filhote", "Fofo", "Labrador", …)
suggested_searches[].q string a consulta refinada que o chip executa ("Filhote golden retriever")
suggested_searches[].link string (URL) a URL de pesquisa do Google Imagens para esse refinamento (udm=2 é o parâmetro de vertical de imagem do Google)
suggested_searches[].uds string token de chip uds do Google; vazio nesta captura
suggested_searches[].thumbnail string uma prévia em linha data:image/jpeg;base64 para o chip

Algumas observações honestas sobre a forma:

  • O objeto analisado revela os chips de refinamento, não um array plano images_results. Para a vertical isch, o ator retorna suggested_searches mais a página renderizada em metadata.rawUrl. Quando você precisa de cada URL de imagem na grade, busque metadata.rawUrl — essa página armazenada contém o conjunto completo que o objeto analisado não achata.
  • As miniaturas estão em base64 inline. O thumbnail de cada chip é um valor completo data:image/jpeg;base64, utilizável sem uma segunda solicitação; o fixture os corta para legibilidade.
  • search_information reflete o que o Google mostra. total_results e time_taken_displayed podem voltar como 0 e vazios na vertical de imagem, onde o Google não renderiza a linha "Sobre N resultados" que mostra para pesquisa na web.
  • Trate os campos por chip como anuláveis. uds está presente em cada chip, mas vazio nesta captura, e a contagem de chips varia por consulta — leia o que está lá ao invés de assumir um comprimento fixo.

Conclusão

Ler imagens do Google se resume a uma decisão e um pedido: aponte o ator scraper.google.search para a vertical de Imagens com tbm: "isch", envie { actor, input } com seu x-api-token, e leia os campos analisados de volta. A resposta é achatada no nível superior — metadata, search_information e os chips de refinamento suggested_searches com suas miniaturas inline — e metadata.rawUrl contém a página totalmente renderizada para a grade completa. Escreva o wrapper do cliente uma vez, aponte-o para a consulta que você precisa, e a mesma forma cobre os atores de resposta de IA quando o pipeline crescer.

Pronto para Construir Seu Pipeline de Dados de Imagem com IA?

Junte-se à nossa comunidade para reivindicar um plano gratuito e se conectar com desenvolvedores construindo pipelines de Imagens do Google: Discord · Telegram.

Inscreva-se em app.scrapeless.com para créditos gratuitos da Scraper API e aponte o ator scraper.google.search para as consultas, idiomas e regiões que seu pipeline de imagens precisa.


FAQ

Q: Raspagem de imagens do Google é legal?

O ator coleta dados visíveis publicamente. As regras variam por jurisdição e pelos termos de serviço do Google, então revise os ToS relevantes e consulte um advogado para seu caso de uso antes de operar em larga escala. Nunca colete dados pessoais protegidos sob o GDPR ou CCPA, e respeite os direitos vinculados a imagens individuais.

Q: Como faço para autenticar?

Cada solicitação carrega o cabeçalho x-api-token: <sua chave>. Uma chave de conta funciona em scraper.google.search e em todos os outros atores. Crie uma chave no plano gratuito em app.scrapeless.com.

Q: Como faço para mudar de resultados da web para imagens?

Defina tbm: "isch" no input. O mesmo ator scraper.google.search serve o SERP da web por padrão; tbm: "isch" seleciona a vertical de Imagens e muda a forma analisada para os chips de refinamento de imagem mais a página de imagem renderizada.

Q: Onde estão as URLs reais das imagens?

O objeto analisado revela os chips de refinamento (suggested_searches) e os metadados da pesquisa. A grade completa de URLs de imagem reside na página armazenada em metadata.rawUrl — busque essa URL quando precisar de cada imagem na página de resultados, não apenas da linha de refinamento.

Q: Posso restringir resultados por idioma ou país?

Sim. Os inputs opcionais hl (idioma da interface), gl (país / localidade) e google_domain delimitam a solicitação — por exemplo { "q": "golden retriever", "tbm": "isch", "hl": "pt", "gl": "br" }.

Q: Preciso de um proxy?

Não. A egressão residencial e o roteamento geográfico estão incorporados ao ator — você envia o input, e o ator lida com a camada de rede e renderização.

Q: Posso executar isso sem um SDK ou agente de IA?

Sim. É HTTP puro — curl, Python requests, Node fetch, ou qualquer linguagem com um cliente HTTP funciona diretamente contra POST /api/v1/scraper/request. Nenhum SDK é necessário.

Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.

Artigos mais populares

Catálogo