Erstellen eines präzisen Anforderungsfingerabdrucks
Beschreiben Sie die Abfrage, die Google-Domain, den kodierten Standort, die Schnittstellensprache, das Land, das Gerät, die Oberfläche und das Ergebnisfenster, das vom Workflow verlangt wird.
Erfassen Sie Google-Suchergebnisse als geparstes JSON für Ranking-Tracking, Wettbewerbsanalysen und Suchtools. Wählen Sie Standort, Sprache, Gerät und Suchtyp.
From query to usable objects
Beschreiben Sie die Abfrage, die Google-Domain, den kodierten Standort, die Schnittstellensprache, das Land, das Gerät, die Oberfläche und das Ergebnisfenster, das vom Workflow verlangt wird.
Lesen Sie dokumentierte Metadaten und Ergebnissearrays, anstatt Ihre Anwendung mit dem Präsentationsmarken einer Suchseite zu verbinden.
Die Anwesenheit von Suchmodulen ist je nach dem Kontext der Anfrage und der für diese Beobachtung zurückgegebenen Google-Oberfläche unterschiedlich.
Speichern Sie den Anfrage-Kontext neben den Ergebnissen, bevor Sie Positionen, Änderungen, Verlegerdeckung oder produktspezifische Signale berechnen.
Speichern Sie diesen Fingerabdruck mit der analysierten Antwort, bevor Sie Positionen, Module oder Verlage im Laufe der Zeit vergleichen.
Dokumentierte Google-Oberflächen
Regelmäßige Webergebnisse verwenden die Google-Engine ohne einen vertikalen Auswählger.
Send engine=google und die erforderliche q. Leave tbm Für normale Google-Suchergebnisse nicht festgelegt.
Setzen Sie den dokumentierten vertikalen Selektor auf. tbm=isch.
Setzen Sie den dokumentierten vertikalen Selektor auf. tbm=vid.
Setzen Sie den dokumentierten vertikalen Selektor auf. tbm=nws.
Setzen Sie den dokumentierten vertikalen Selektor auf. tbm=shop.
Verwenden des Werts für dokumentierte Jobs ibp=htl;jobs.
Anfrageparameter
Beginnen Sie mit dem erforderlichen Abfragenparameter. Fügen Sie nur dokumentierte optionelle Kontrollen hinzu, wenn der Workflow eine bestimmte Oberfläche, Präsentation, Lokalisierung oder Ergebnisfenster benötigt.
qDie Schlüsselwörter, nach denen bei Google gesucht werden soll.
Zeichenfolge · erforderlichtbm ibptbm Wählt dokumentierte Bild-, Video-, Nachrichten- oder Shopping-Vertikalen aus. ibp Unterstützt den dokumentierten Jobsuchewert.
deviceWählen Sie eine unterstützte Desktop-, Mobil- oder Tablet-Suchpräsentation aus.
String · optionaldomainWählen Sie die für die Suche verwendete Google-Domain aus.
String · optionaluuleÜbergeben Sie einen Google-codierten Standort für den Suchkontext.
String · optionalhl glhl setzt die Sprache der Oberfläche; gl Gibt den Ländercode an, der zur Lokalisierung der Suche verwendet wird.
start numstart ist das Ergebnis, das zu überspringen ist; num Die Anzahl der Ergebnisse auf jeder Seite wird abgefragt.
Analysierte Google-Antwort
Die dokumentierte Antwort enthält Suchmetadaten und geparserte JSON-Ergebnis-Sammlungen. Die in einer bestimmten Antwort vorhandenen Blöcke hängen von der Abfrage, dem Ort, dem Gerät und der Suchvertikel ab.
01 · Kontext
generalSuchmaschine, Ergebniszahl, Sprache, Standort, Präsentation, Suchtyp, Seitebezeichnung und Zeitstempelfelder, die durch das dokumentierte Antwortbeispiel angezeigt werden.
02 · Anfrageverfolgung
inputBitte um Informationen wie die ursprüngliche URL und die Felder des Benutzer-Agentes, die im dokumentierten Antwortbeispiel angezeigt werden.
03 · Entdeckungswege
navigationZurückgegebene Navigationsbeiträge können andere Google-Sucheroberflächen für die Abfrage identifizieren.
04 · analysierte Ergebnisse
organic[]Dokumentierte organische Objekte umfassen Felder wie Link, Display Link, Titel, Beschreibung, Rang und globale Rang bei Rückgabe.
Eine kontextbezogene Anfrage
Wählen Sie die Abfrage, die Suchfläche, die Google-Domain, den kodierten Standort, die Sprache, das Land, das Gerät und das von der Entscheidung erforderliche Seitenfenster aus.
Senden Sie eine GET-Anfrage an. https://serpapi.webscrapingapi.com/v2 with api_key, engine=google, und q.
Überprüfen Sie das HTTP-Ergebnis, analysieren Sie JSON, lesen Sie die Sammlungen, die Ihr Workflow benötigt, und speichern Sie den Anfrage-Kontext mit gespeicherten Ergebnissen.
Synchrone Anfrage
engine=googleVerwenden Sie den Standardweg, wenn die Anwendung auf die aktuelle Google-Antwort warten muss.
Queued Retrieval
engine=google_asyncÜbermitteln Sie eine Google-Suche und holen Sie die fertige SERP-Nutzkosten später über die Snapshot API ab.
Integration
Halten Sie den API-Schlüssel in der Server-Seite-Konfiguration, kodieren Sie die Abfragewerte, setzen Sie eine explizite Zeitfrist und stellen Sie erfolglose HTTP-Ergebnisse vor der Analyse der Antwort auf.
: "${WSA_API_KEY:?WSA_API_KEY is required}"
curl --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=best trail shoes" \
--data-urlencode "gl=us" \
--data-urlencode "hl=en" \
--data-urlencode "device=mobile"const apiKey = process.env.WSA_API_KEY;
if (!apiKey) throw new Error("WSA_API_KEY is required");
const parameters = new URLSearchParams({
"api_key": apiKey,
"engine": "google",
"q": "best trail 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("Google Search API status " + response.status);
}
console.log(await response.json());import os
import requests
api_key = os.environ.get("WSA_API_KEY")
if not api_key:
raise RuntimeError("WSA_API_KEY is required")
response = requests.get(
"https://serpapi.webscrapingapi.com/v2",
params={
"api_key": api_key,
"engine": "google",
"q": "best trail shoes",
"gl": "us",
"hl": "en",
"device": "mobile",
},
timeout=120,
)
response.raise_for_status()
print(response.json())<?php
$apiKey = getenv("WSA_API_KEY");
if ($apiKey === false || $apiKey === "") {
throw new RuntimeException("WSA_API_KEY is required");
}
$endpoint = "https://serpapi.webscrapingapi.com/v2"
. "?engine=google"
. "&api_key=" . rawurlencode($apiKey)
. "&q=" . rawurlencode("best trail shoes")
. "&gl=us&hl=en&device=mobile";
$client = curl_init($endpoint);
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() {
apiKey := os.Getenv("WSA_API_KEY")
if apiKey == "" { panic("WSA_API_KEY is required") }
endpoint := "https://serpapi.webscrapingapi.com/v2?engine=google" +
"&api_key=" + url.QueryEscape(apiKey) +
"&q=" + url.QueryEscape("best trail shoes") +
"&gl=us&hl=en&device=mobile"
client := &http.Client{Timeout: 120 * time.Second}
response, err := client.Get(endpoint)
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 GoogleSearchApiExample {
public static void main(String[] args) throws Exception {
String apiKey = System.getenv("WSA_API_KEY");
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalStateException("WSA_API_KEY is required");
}
String endpoint = "https://serpapi.webscrapingapi.com/v2"
+ "?engine=google"
+ "&api_key=" + URLEncoder.encode(
apiKey, StandardCharsets.UTF_8)
+ "&q=" + URLEncoder.encode(
"best trail shoes", StandardCharsets.UTF_8)
+ "&gl=us&hl=en&device=mobile";
var request = HttpRequest.newBuilder(URI.create(endpoint))
.timeout(Duration.ofSeconds(120))
.GET().build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() < 200 || response.statusCode() >= 300) {
throw new RuntimeException("API status " + response.statusCode());
}
System.out.println(response.body());
}
}
using System;
using System.Net;
using System.Net.Http;
var rawApiKey = Environment.GetEnvironmentVariable("WSA_API_KEY");
if (string.IsNullOrWhiteSpace(rawApiKey)) {
throw new InvalidOperationException("WSA_API_KEY is required");
}
var apiKey = WebUtility.UrlEncode(rawApiKey);
var query = WebUtility.UrlEncode("best trail shoes");
var endpoint = "https://serpapi.webscrapingapi.com/v2"
+ "?engine=google&api_key=" + apiKey
+ "&q=" + query
+ "&gl=us&hl=en&device=mobile";
using var client = new HttpClient();
client.Timeout = TimeSpan.FromSeconds(120);
var response = await client.GetAsync(endpoint);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());require "net/http"
require "uri"
api_key = ENV["WSA_API_KEY"]
raise "WSA_API_KEY is required" if api_key.nil? || api_key.empty?
api_key = URI.encode_www_form_component(api_key)
query = URI.encode_www_form_component("best trail shoes")
uri = URI("https://serpapi.webscrapingapi.com/v2" +
"?engine=google&api_key=#{api_key}&q=#{query}" +
"&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)
unless response.is_a?(Net::HTTPSuccess)
raise "API status #{response.code}"
end
puts response.bodyhttps://serpapi.webscrapingapi.com/v2
api_key + engine=google + q
gl=us + hl=en + device=mobile
120-Sekunden-Client-Timeout und explizite HTTP-Fehlerbehandlung
Workflows für Einkäufer
Vergleichen Sie zurückgegebene organische Positionen und optionale Module über kontrollierte Abfragen, Lokalen, Geräte und Ergebnisfenster hinweg.
Beobachten Sie die zurückgegebenen Domains für genehmigte Abfragengruppen und halten Sie gleichzeitig die Regeln für Abwesenheit und Signifikanz in Ihrer Anwendung.
Die Karte gab Verlage, Titel und Beschreibungen über vergleichbare Suchkontexte und Überprüfungszeiten hinweg zurück.
Definition des Schemas, des Beobachtungszeitstempels, der Fingerabdrücke, der Validierungszustände und des Behaltungsmodells, die über die JSON-Anforderung hinaus erforderlich sind.
Die Produktauswahl
Ihr Team besitzt den Such-Client, die Logik, das Parsieren, das Reaktionsmodell und die Wartung.
Infrastruktur SeitenauswahlBitte um eine zugelassenen öffentlichen Seiten, wenn Ihre Anwendung die Extraktion und ihr Nachlaufschema besitzt.
Webzugriff APISenden Sie eine kontextuelle Google-Abfrage und konsumieren Sie dokumentierte Metadaten plus gesammelte Ergebniskollektionen.
Verwenden Sie eine browsergestützte REST-Anfrage mit dokumentierten Warte- und Interaktionsschritten, wenn die Google-Suchenparameter nicht richtig passen.
Webzugriff API Operationelle EntbindungDie Abfrage, die Kadenz, das Schema, der Qualitätsprozess und die Lieferung mit WebScrapingAPI vereinbaren.
DatenprogrammAuswertung der Produktion
Das ist ein Planungsmodell. Die aktuellen Preis- und Planbedingungen bleiben die kommerzielle Quelle der Wahrheit.
FAQ
Google Search API gibt Anfrage-Kontext und geparsene JSON-Ergebnis-Sammlungen zurück. Organische Ergebnisse werden dokumentiert, während Navigations- und andere Reaktionsmodule von der Abfrage, dem Ort, dem Gerät und der angeforderten Suchfläche abhängen.
Verwenden Sie q für die erforderliche Abfrage. Dokumentierte optionalen Kontrollen umfassen tbm, ibp, Gerät, Domain, uule, hl, gl, Start und num für Suchfläche, Präsentation, Lokalisierung und Paginierung.
Lassen Sie TBm für die regelmäßige Websuche unbestimmt oder verwenden Sie dokumentierte TBm-Werte für Bilder, Videos, Nachrichten und Shopping. Jobs verwendet die dokumentierte Ibp-Steuerung. Validieren Sie die zurückgegebene Form für die Oberflächen, die Ihre Anwendung benötigt.
Google-Ergebnismodule variieren je nach Abfrage, Ort, Gerät und Suchvertikel. Behandeln Sie die Reaktionsblöcke als optional, unterscheiden Sie eine fehlende Sammlung von einer nicht erfolgreichen HTTP-Anfrage und lesen Sie nur die Module, die Ihre Anwendung benötigt.
Verwenden Sie die separat dokumentierte google_async-Engine, wenn Ihr Workflow eine Google-Suche einreichen und die fertige SERP-Nutzkost durch die Snapshot API abrufen soll. Die Standard-Google-Engine ist der auf dieser Seite gezeigte synchrone Anfrageweg.
Halten Sie api_key in einer Server-Umgebungsvariable, URL-Code-Fragenwerte, setzen Sie einen expliziten Timeout und überprüfen Sie den HTTP-Status, bevor Sie JSON parsieren. Bewahren Sie den Anfrage-Kontext neben gespeicherten Beobachtungen.
Deine erste Google-Beobachtung
Prüfen Sie mit dem Google-Test mit 100 Anfragen Ihre Suchbegriffe, Standorte und Ausgabe, bevor Sie einen Monatstarif wählen.