Forma da resposta indicada de antemão
Saber se o motor retorna coleções de resultados analisados ou uma carga útil da SERP fonte antes de projetar o consumidor.
API SERP
Receba resultados do Google e Bing em JSON estruturado. Capture o HTML das SERPs do DuckDuckGo e Yandex em respostas JSON, com controles de consulta e localização.
Dados de busca sem o raspador
Saber se o motor retorna coleções de resultados analisados ou uma carga útil da SERP fonte antes de projetar o consumidor.
Mantenha as entradas do motor, da consulta, do local, da linguagem, do dispositivo, vertical e da pagination ao lado de cada observação.
WebScrapingAPI executa o caminho de recuperação de pesquisa suportado e mantém o tratamento documentado das respostas.
Para os endpoints analisados, as coleções opcionais de resultados aparecem apenas quando o SERP retornado as expõe; a ausência não é automaticamente uma falha de coleção.
Preservar a impressão digital da solicitação com resultados armazenados para que as comparações permaneçam iguais.
Cobertura documentada
Cada motor tem seus próprios parâmetros e forma de resposta. Escolha primeiro o ponto final, e depois valida os tipos de resultados necessários com consultas representativas.
O Google Search suporta controles documentados de web, imagem, vídeo, notícias, compras e empregos. Os endpoints dedicados cobrem superfícies adicionais do Google.
googlegoogle_asyncgoogle_mapsgoogle_flightsgoogle_maps_reviewsgoogle_reverse_imagegoogle_trendsgoogle_hotelsReceber colecções de resultados JSON documentadas com controles de mercado, localização, idioma, busca segura, compensação e contagem de resultados.
Receba metadados de solicitação e a carga útil do HTML SERP fonte dentro de um envelope JSON, com região documentada, linguagem de interface, busca segura, intervalo de tempo e controles de dispositivo.
Receba metadados de solicitação e a carga útil do HTML SERP fonte dentro de um envelope JSON, com controles documentados de localização, idioma, dispositivo, página e intervalo de tempo.
Limite de cobertura: um nome do motor não implica controles ou análise idênticos. Google e Bing documentados analisaram coleções de resultados JSON; DuckDuckGo e Yandex documentar um envelope JSON contendo a fonte SERP HTML carga útil. A documentação do ponto final atual continua a ser a fonte de produção de verdade.
Resposta consciente do motor
As coleções analisadas e as cargas de fonte exigem diferentes consumidores. Selecione o motor primeiro, valide sua forma de resposta atual e preserve o contexto da solicitação ao lado da saída.
Metadados de motor, consulta e nível de resposta expostos pelo ponto final selecionado.
search_parameters · generalTítulos, links, descrições, posições observadas e módulos opcionais, quando documentados e devolvidos.
organic[] · related[] · module?A carga útil HTML fonte é devolvida dentro do envelope JSON; o seu aplicativo possui qualquer extração dele.
search_results: "<html>…</html>"Adicione IDs de execução, timestamps solicitados, identificadores de grupos de consulta e versões de esquema quando os resultados forem inseridos em seus sistemas.
run_id · observed_at · schemaControle de pesquisa do Google
Comece com a consulta necessária. Adicione apenas o contexto documentado necessário para tornar a observação útil e comparável.
Use a consulta, uma vertical suportada ou o controle de pesquisa de empregos documentados.
qtbmibpDefina os valores de domínio suportado, localização codificada, idioma, país e dispositivo.
domainuulehlgldeviceUse o offset documentado e o conteúdo de resultados solicitados para a janela de página que você precisa.
startnumengine=googleUse o caminho documentado padrão quando a aplicação deve esperar a resposta atual.
Review synchronous parametersengine=google_asyncUse o fluxo de trabalho documentado dedicado quando a busca de Google em fila se encaixa na carga de trabalho. Não suponha que o comportamento assíncrono seja compartilhado por todos os motores.
Review asynchronous workflowUm pedido
Define a observação
Escolha o motor, consulta e localização suportada, idioma, dispositivo, tipo de pesquisa e parâmetros de pagination.
Enviar a solicitação
Ligue para o endpoint SERP do lado do servidor com a sua chave API. WebScrapingAPI opera a recuperação e o tratamento de resposta suportados.
Validação e utilização
Inscreva o status HTTP e a forma de resposta específica do motor, e retenha o contexto necessário para classificação, extração, alerta ou fluxos de trabalho de pesquisa.
Integração
Mantenha a chave API fora do código do lado do cliente, os valores de busca de código de URL, defina um prazo e inspecione estados HTTP falhos antes de analisar a resposta.
Resumo do pedido
Use o mesmo motor, mercado, idioma, dispositivo e tipo de pesquisa em que o seu produto dependerá na produção.
WSA_API_KEY permanece do lado do servidorapi_key + engine + qgl + hl + devicecurl --get --fail-with-body --max-time 120 \
"https://serpapi.webscrapingapi.com/v2" \
--data-urlencode "api_key=$WSA_API_KEY" \
--data-urlencode "engine=google" \
--data-urlencode "q=running shoes" \
--data-urlencode "gl=us" \
--data-urlencode "hl=en" \
--data-urlencode "device=mobile"import os
import requests
response = requests.get(
"https://serpapi.webscrapingapi.com/v2",
params={
"api_key": os.environ["WSA_API_KEY"],
"engine": "google",
"q": "running shoes",
"gl": "us",
"hl": "en",
"device": "mobile",
},
timeout=120,
)
response.raise_for_status()
print(response.json())const parameters = new URLSearchParams({
api_key: process.env.WSA_API_KEY,
engine: "google",
q: "running shoes",
gl: "us",
hl: "en",
device: "mobile",
});
const response = await fetch(
"https://serpapi.webscrapingapi.com/v2?" + parameters,
{ signal: AbortSignal.timeout(120_000) }
);
if (!response.ok) throw new Error("API status " + response.status);
console.log(await response.json());<?php
$parameters = http_build_query([
"api_key" => getenv("WSA_API_KEY"),
"engine" => "google",
"q" => "running shoes",
"gl" => "us",
"hl" => "en",
"device" => "mobile",
]);
$client = curl_init("https://serpapi.webscrapingapi.com/v2?" . $parameters);
curl_setopt_array($client, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 120,
]);
$body = curl_exec($client);
$status = curl_getinfo($client, CURLINFO_RESPONSE_CODE);
$error = curl_error($client);
curl_close($client);
if ($body === false) throw new RuntimeException($error);
if ($status >= 400) throw new RuntimeException("API status " . $status);
echo $body;package main
import (
"fmt"
"io"
"net/http"
"net/url"
"os"
"time"
)
func main() {
parameters := url.Values{}
parameters.Add("api_key", os.Getenv("WSA_API_KEY"))
parameters.Add("engine", "google")
parameters.Add("q", "running shoes")
parameters.Add("gl", "us")
parameters.Add("hl", "en")
parameters.Add("device", "mobile")
client := &http.Client{Timeout: 120 * time.Second}
response, err := client.Get(
"https://serpapi.webscrapingapi.com/v2?" + parameters.Encode(),
)
if err != nil { panic(err) }
defer response.Body.Close()
if response.StatusCode >= 400 { panic(fmt.Sprintf("API status %d", response.StatusCode)) }
body, err := io.ReadAll(response.Body)
if err != nil { panic(err) }
fmt.Println(string(body))
}import java.net.URI;
import java.net.URLEncoder;
import java.net.http.*;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
public final class SerpApiExample {
public static void main(String[] args) throws Exception {
String queryString = "api_key=" + URLEncoder.encode(
System.getenv("WSA_API_KEY"), StandardCharsets.UTF_8
) + "&engine=google&q=running%20shoes"
+ "&gl=us&hl=en&device=mobile";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://serpapi.webscrapingapi.com/v2?" + queryString))
.timeout(Duration.ofSeconds(120))
.GET().build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() >= 400) {
throw new RuntimeException("API status " + response.statusCode());
}
System.out.println(response.body());
}
}
using System;
using System.Net;
var apiKey = WebUtility.UrlEncode(
Environment.GetEnvironmentVariable("WSA_API_KEY")
);
var requestUrl =
"https://serpapi.webscrapingapi.com/v2?api_key=" + apiKey +
"&engine=google&q=running%20shoes" +
"&gl=us&hl=en&device=mobile";
using var client = new HttpClient();
client.Timeout = TimeSpan.FromSeconds(120);
var response = await client.GetAsync(requestUrl);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());require "net/http"
require "uri"
uri = URI("https://serpapi.webscrapingapi.com/v2")
uri.query = URI.encode_www_form(
api_key: ENV.fetch("WSA_API_KEY"),
engine: "google",
q: "running shoes",
gl: "us",
hl: "en",
device: "mobile"
)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.open_timeout = 10
http.read_timeout = 120
response = http.get(uri.request_uri)
raise "API status #{response.code}" unless response.is_a?(Net::HTTPSuccess)
puts response.bodyPropriedade operacional
WebScrapingAPI opera
A sua equipa é proprietária
Limite de decisão: SERP API does not define a universal rank, decide whether an absence is commercially meaningful, or operate your downstream analytics. Use eligible public results in line with the Acordo de serviço and applicable requirements.
Casos de utilização
Selecção do produto
A sua equipa possui o cliente de busca, a lógica de acesso, a análise, a manutenção e o modelo de resultados.
WebScrapingAPI recupera uma página pública elegível enquanto o seu pedido possui extração.
Enviar uma consulta de pesquisa suportada e receber coleções analisadas onde documentadas, ou uma carga útil da fonte SERP dentro de um envelope JSON.
Use uma solicitação REST com suporte do navegador com espera documentada e passos de interação quando os parâmetros SERP específicos do motor não se encaixem adequadamente.
WebScrapingAPI opera um conjunto de consultas acordado, cadência, esquema, processo de qualidade e entrega.
Avaliação da produção
A fórmula é um modelo de planejamento, não uma promessa de faturamento.
FAQ
API SERP é um endpoint do lado do servidor para enviar uma consulta de pesquisa com contexto documentado e receber a forma de resposta suportada por esse mecanismo. O documento do Google e do Bing analisou as coleções de resultados JSON; DuckDuckGo e Yandex documentam um envelope JSON contendo metadados de solicitação e a carga útil HTML da fonte SERP.
O documento JSON plus as coleções de resultados analisadas. DuckDuckGo e Yandex documento JSON metadados plus a fonte SERP HTML carga útil, que o seu aplicativo pode armazenar ou extrair de acordo com seu próprio modelo de dados.
Para motores com coleções documentadas, os módulos devolvidos dependem do motor, consulta, localização, dispositivo e tipo de pesquisa. Os resultados orgânicos e módulos específicos de endpoint, como anúncios, elementos locais, compras, mídia ou pesquisas relacionadas, aparecem apenas quando a página de pesquisa devolvida os expõe.
Use os parâmetros documentados para o motor selecionado. O Google Search documenta domínio, localização codificada, idioma de interface, país e controles de desktop, dispositivo móvel ou tablet; outros motores usam seus próprios parâmetros de mercado e localização.
A documentação inclui um motor de pesquisa Google assíncrono dedicado para obtenção em fila. Trate o comportamento assíncrono como específico do endpoint e siga a documentação de fluxo de trabalho atual ao implementar o envio e a obtenção de resultados.
WebScrapingAPI mantém o processamento de respostas suportado e as coleções analisadas onde a documentação do endpoint as fornece. DuckDuckGo e Yandex atualmente retornam a carga útil da fonte SERP HTML em um envelope JSON, então sua equipe possui qualquer extração dessa carga útil, bem como seu modelo de dados interno e decisões a jusante.
Inscreva o status HTTP e o corpo de erro documentado, use retries limitadas quando apropriado e distingue uma solicitação fracassada de uma resposta de pesquisa bem-sucedida em que uma coleção de resultados opcionais está ausente ou vazia.
A sua primeira observação
Use o teste de 100 solicitações do Google para conferir palavras-chave, locais e saída antes de escolher um plano mensal.