Forma de respuesta indicada por delante
Saber si el motor devuelve colecciones de resultados analizados o una carga útil de SERP fuente antes de diseñar el consumidor.
API SERP
Recibe resultados de Google y Bing como JSON analizado. Captura el HTML de las SERP de DuckDuckGo y Yandex en respuestas JSON, con controles de consulta y ubicación.
Datos de búsqueda sin el raspador
Saber si el motor devuelve colecciones de resultados analizados o una carga útil de SERP fuente antes de diseñar el consumidor.
Mantenga las entradas de motor, consulta, localización, idioma, dispositivo, vertical y paginado junto a cada observación.
WebScrapingAPI ejecuta la ruta de recuperación de búsqueda compatible y mantiene un manejo documentado de la respuesta.
Para los puntos finales analizados, las colecciones de resultados opcionales aparecen solo cuando el SERP devuelto las expone; la ausencia no es automáticamente un fallo de recogida.
Preservar la huella digital de la solicitud con resultados almacenados para que las comparaciones sigan siendo iguales.
Capacitación documentada
Cada motor tiene sus propios parámetros y forma de respuesta. Elija primero el endpoint y valide después los tipos de resultado necesarios con consultas representativas.
Google Search admite controles documentados de web, imágenes, videos, noticias, compras y trabajos.
googlegoogle_asyncgoogle_mapsgoogle_flightsgoogle_maps_reviewsgoogle_reverse_imagegoogle_trendsgoogle_hotelsRecibir colecciones de resultados JSON documentadas con controles de mercado, ubicación, idioma, búsqueda segura, compensación y recuento de resultados.
Recibir metadatos de solicitud y la carga útil de HTML SERP fuente dentro de un envase JSON, con regiones documentadas, lenguaje de interfaz, búsqueda segura, rango de tiempo y controles de dispositivo.
Recibir metadatos de solicitud y la carga útil de HTML SERP fuente dentro de un envase JSON, con controles documentados de ubicación, idioma, dispositivo, página y rango de tiempo.
Límites de cobertura: Un nombre del motor no implica controles o análisis idénticos. Google y Bing documentan colecciones de resultados JSON; DuckDuckGo y Yandex documentan un sobre JSON que contiene la carga útil de HTML SERP fuente. La documentación actual del punto final sigue siendo la fuente de producción de la verdad.
Respuesta del motor
Las colecciones analizadas y las cargas útiles de la fuente requieren diferentes consumidores. Seleccione primero el motor, valide su forma de respuesta actual y preserve el contexto de la solicitud junto a la salida.
Metadatos de motor, consulta y nivel de respuesta expuestos por el punto final seleccionado.
search_parameters · generalTítulos, enlaces, descripciones, posiciones observadas y módulos opcionales donde se documenten y devuelvan.
organic[] · related[] · module?La carga útil de HTML fuente se devuelve dentro del sobre JSON; su aplicación posee cualquier extracción de ella.
search_results: "<html>…</html>"Añadir ID de ejecución, timestamps solicitados, identificadores de grupos de consulta y versiones de esquema cuando los resultados entran en sus sistemas.
run_id · observed_at · schemaControl de búsqueda de Google
Comience con la consulta requerida. Añade sólo el contexto documentado necesario para que la observación sea útil y comparable.
Utilice la consulta, una vertical soportada o el control de búsqueda de trabajos documentados.
qtbmibpEstablezca los valores de dominio soportado, ubicación codificada, idioma, país y dispositivo.
domainuulehlgldeviceUtilice el descenso documentado y el recuento de resultados solicitados para la ventana de página que necesita.
startnumengine=googleUtilice el camino documentado estándar cuando la aplicación deba esperar la respuesta actual.
Review synchronous parametersengine=google_asyncUtilice el flujo de trabajo documentado dedicado cuando la búsqueda de Google en cola se ajusta a la carga de trabajo. No asuma que el comportamiento asincrónico sea compartido por todos los motores.
Review asynchronous workflowUna solicitud
Definir la observación
Seleccione el motor, la consulta y los parámetros de ubicación, idioma, dispositivo, tipo de búsqueda y paginado compatibles.
Envía la solicitud
Llame al punto final de SERP del lado del servidor con su clave de API. WebScrapingAPI opera la recuperación y el manejo de respuestas compatibles.
Validación y uso
Inspeccione el estado HTTP y la forma de respuesta específica del motor, luego mantenga el contexto requerido por los flujos de trabajo de clasificación, extracción, alerta o investigación.
La integración
Mantenga la clave de API fuera del código del lado del cliente, los valores de búsqueda de código URL, establezca un tiempo límite e inspeccione los estados HTTP fallidos antes de analizar la respuesta.
Breve solicitud
Utilice el mismo motor, mercado, idioma, dispositivo y tipo de búsqueda en el que su producto dependerá en la producción.
WSA_API_KEY permanece en el lado del 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.bodyPropiedad operativa
WebScrapingAPI opera
Tu equipo es dueño
Frontera de la decisión: 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 Acuerdo de servicio and applicable requirements.
Casos de uso
Selección de producto
Tu equipo posee el cliente de búsqueda, la lógica de acceso, el análisis, el mantenimiento y el modelo de resultados.
WebScrapingAPI recupera una página pública elegible mientras su solicitud posee la extracción.
Envía una consulta de búsqueda compatible y recibe colecciones analizadas donde se documentan, o una carga útil de SERP fuente dentro de un envase JSON.
Utilice una solicitud REST respaldada por el navegador con pasos de espera documentados y interacción cuando los parámetros SERP específicos del motor no sean adecuados.
WebScrapingAPI opera un conjunto de consultas acordado, cadencia, esquema, proceso de calidad y entrega.
Evaluamiento de la producción
La fórmula es un modelo de planificación, no una promesa de facturación.
FAQ
API SERP es un punto final del lado del servidor para enviar una consulta de búsqueda con contexto documentado y recibir la forma de respuesta que soporta ese motor. Google y Bing documentaron las colecciones de resultados JSON; DuckDuckGo y Yandex documentan un envase JSON que contiene metadatos de solicitud y la carga útil de HTML de origen SERP.
La respuesta depende del motor seleccionado. Google y Bing documentan metadatos JSON plus colecciones de resultados analizados. DuckDuckGo y Yandex documentan metadatos JSON plus la carga útil de HTML SERP fuente, que su aplicación puede almacenar o extraer de acuerdo con su propio modelo de datos.
Para los motores con colecciones analizadas documentadas, los módulos devueltos dependen del motor, la consulta, la ubicación, el dispositivo y el tipo de búsqueda. Los resultados orgánicos y los módulos específicos de los puntos finales, como anuncios, elementos locales, compras, medios o búsquedas relacionadas, aparecen solo cuando la página de búsqueda devuelta los expone.
Utilice los parámetros documentados para el motor seleccionado. Google Busca documenta dominio, ubicación codificada, idioma de interfaz, país y controles de dispositivos de escritorio, móvil o tablet; otros motores utilizan sus propios parámetros de mercado y localización.
La documentación incluye un motor de búsqueda asíncrono de Google dedicado para la recuperación en cola. Trate el comportamiento asíncrono como específico del punto final y use la documentación de flujo de trabajo actual al implementar la presentación y la recuperación de resultados.
WebScrapingAPI mantiene el manejo de respuestas y las colecciones analizadas compatibles donde la documentación de los puntos finales las proporciona. DuckDuckGo y Yandex actualmente devuelven la carga útil de HTML SERP fuente en un envase JSON, por lo que su equipo posee cualquier extracción de esa carga útil, así como su modelo de datos interno y decisiones descendentes.
Inspeccione el estado HTTP y el cuerpo de errores documentados, utilice retrasos limitados cuando sea apropiado y distingue una solicitud fallida de una respuesta de búsqueda exitosa en la que una colección de resultados opcionales está ausente o vacía.
Su primera observación
Usa la prueba de 100 solicitudes de Google para comprobar palabras clave, ubicaciones y salida antes de elegir un plan mensual.