Skip to content

Eine Bright Data SERP API auf Enterprise-Niveau für die großflächige Echtzeit-Extraktion von Suchmaschinen-Ergebnissen.

Notifications You must be signed in to change notification settings

bright-data-de/serp-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SERP API

Promo

Dieses Repository bietet zwei Ansätze zum Sammeln von Daten von Suchergebnisseiten (Search Engine Results Page, SERP):

  1. Einen kostenlosen Google-Scraper im kleinen Maßstab, geeignet für grundlegende Datenerfassung
  2. Eine API-Lösung auf Enterprise-Niveau für die großskalige Datenerfassung in Echtzeit von großen Suchmaschinen

Table of Contents

Free SERP Scraper

Der kostenlose Scraper ermöglicht das Sammeln von Google-SERP-Daten im kleinen Maßstab.

google-search

Input Parameters

  • Datei: Textdatei mit Suchbegriffen (erforderlich)
  • Format: Ein Suchbegriff pro Zeile

Implementation

Ändern Sie diese Parameter in der Python-Datei:

# free_serp_scraper/google_serp.py
HEADLESS = False
MAX_RETRIES = 2
REQUEST_DELAY = (1, 4)

with open("search_terms.txt", "r", encoding="utf-8") as file:
    pass

Sample Output

google-serp-data

Limitations

Google implementiert mehrere Anti-Scraping-Maßnahmen:

  1. CAPTCHAs: Werden verwendet, um zwischen Menschen und Bots zu unterscheiden
  2. IP-Blocks: Temporäre oder permanente Sperren bei verdächtiger Aktivität
  3. Rate Limiting: Schnelle Erkennung und Blockierung nicht identifizierter Anfragen
  4. Geotargeting: Ergebnisse variieren je nach Standort, Sprache und Gerät
  5. Honeypot Traps: Versteckte Elemente zur Erkennung automatisierter Zugriffe

Bright Data SERP API

Bright Data's SERP API bietet eine robuste Lösung für eine zuverlässige SERP-Datenerfassung.

Key Features

  • Pay-per-successful-request-Modell
  • Schnelle Antwortzeiten
  • Standortspezifisches Targeting
  • Unterstützung für mehrere Gerätetypen und Suchparameter
  • Abdeckung großer Suchmaschinen (Google, Bing, DuckDuckGo, Yandex, Baidu, Yahoo, Naver)
  • Integrierte Anti-Bot-Lösungen
  • Ergebnisse in Echtzeit mit Genauigkeit auf Stadtebene
  • Strukturierte Datenausgabe (JSON/HTML)

Hinweis: Die SERP API ist Teil der Bright Data’s Web Scraping Suite und umfasst vollständiges Proxy-Management sowie Entsperrungs- und Parsing-Funktionen.

Getting Started

  1. Voraussetzungen:
  2. Einrichtung der SERP API: Folgen Sie der Schritt-für-Schritt-Anleitung, um die neue SERP API in Ihrem Bright Data-Konto einzurichten.
  3. Implementierungsmethoden:
    1. Direct API Access
    2. Native Proxy-Based Access

Direct API Access

Die einfachste Methode zur Nutzung der API ist das Senden einer direkten Anfrage.

cURL Example

curl https://api.brightdata.com/request \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer API_TOKEN" \
  -d '{
        "zone": "ZONE_NAME",
        "url": "https://www.google.com/search?q=ollama&brd_json=1",
        "format": "raw"
      }'

Python Example

import requests
import json

url = "https://api.brightdata.com/request"

headers = {"Content-Type": "application/json", "Authorization": "Bearer API_TOKEN"}

payload = {
    "zone": "ZONE_NAME",
    "url": "https://www.google.com/search?q=ollama&brd_json=1",
    "format": "raw",
}

response = requests.post(url, headers=headers, json=payload)

with open("serp_direct_api.json", "w") as file:
    json.dump(response.json(), file, indent=4)

print("Response saved to 'serp_direct_api.json'.")

👉 Sehen Sie die vollständige JSON-Ausgabe

Hinweis: Verwenden Sie brd_json=1 für geparstes JSON oder brd_json=html für geparstes JSON + vollständiges verschachteltes HTML.

Erfahren Sie mehr über das Parsen von Ergebnissen: SERP API Parsing Guide

Native Proxy-Based Access

Eine alternative Methode mit Proxy-Routing.

cURL Example

curl -i \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<CUSTOMER_ID>-zone-<ZONE_NAME>:<ZONE_PASSWORD> \
  -k \
  "https://www.google.com/search?q=ollama"

Python Example

import requests
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

host = "brd.superproxy.io"
port = 33335
username = "brd-customer-<customer_id>-zone-<zone_name>"
password = "<zone_password>"
proxy_url = f"http://{username}:{password}@{host}:{port}"

proxies = {"http": proxy_url, "https": proxy_url}

url = "https://www.google.com/search?q=ollama"
response = requests.get(url, proxies=proxies, verify=False)

with open("serp_native_proxy.html", "w", encoding="utf-8") as file:
    file.write(response.text)

print("Response saved to 'serp_native_proxy.html'.")

👉 Sehen Sie die vollständige HTML-Ausgabe

SSL Certificate: Laden Sie für den Produktivbetrieb das SSL-Zertifikat von Bright Data. Mehr erfahren: SSL Certificate Guide

Query Parameters Overview

Bright Data SERP API ermöglicht es Ihnen, Anfragen für mehrere Suchmaschinen – einschließlich Google, Bing, Yandex und DuckDuckGo – anzupassen, indem Sie Query-Parameter für Lokalisierung, Paginierung, Geräte-Emulation und mehr verwenden. Diese Übersicht bietet einen groben Überblick über die Funktionen der API.

Eine vollständige Liste und detaillierte Erklärung aller Query-Parameter finden Sie in der Detailed Query Parameters Documentation.

Google

SERP API unterstützt verschiedene Google-Dienste, einschließlich Search, Maps, Trends, Reviews, Lens, Hotels und Flights. Unten finden Sie wichtige Konfigurationsparameter für jeden Dienst:

1. Google Search

Passen Sie Ihre Suchergebnisse mit Optionen für Lokalisierung, Suchtyp, Paginierung, Geolokalisierung und Geräte-Targeting an.

Localization

  • gl: Ländercode für den Suchstandort (z. B. gl=us).
  • hl: Sprachcode für die Ergebnisse (z. B. hl=en).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.google.com/search?q=pizza&gl=us&hl=en"

Search Type: Verwenden Sie den Parameter tbm, um den Suchtyp festzulegen:

  • Images: tbm=isch
  • Shopping: tbm=shop
  • News: tbm=nws
  • Videos: tbm=vid
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.google.com/search?q=pizza&tbm=shop"

Pagination:

  • start: Ergebnis-Offset (0 für die erste Seite, 20 für die zweite usw.).
  • num: Anzahl der Ergebnisse pro Seite (Standard ist 20).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.google.com/search?q=pizza&start=20&num=50"

Geolocation:

  • uule: Kodierter Standort-String für geospezifische Ergebnisse
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.google.com/search?q=pizza&uule=w+CAIQICINVW5pdGVkK1N0YXRlcw"

Device Targeting: Verwenden Sie den Parameter brd_mobile:

  • 0: Desktop (Standard)
  • 1: Zufälliges Mobile
  • Spezifische Werte: ios (oder iphone), ipad, android, android_tablet
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.google.com/search?q=pizza&brd_mobile=1"

2. Google Maps

Passen Sie Maps-Abfragen an, indem Sie Koordinaten angeben und nach Unterkunftsart filtern.

Coordinates:

  • Format: @latitude,longitude,zoom (z. B. Zoom von 3z bis 21z).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.google.com/maps/search/restaurants/@47.30227,1.67458,14.00z"

Accommodation Search:

  • brd_accomodation_type:
    • hotels (Standard)
    • vacation_rentals
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.google.com/maps/search/hotels+new+york/?brd_accomodation_type=vacation_rentals"

3. Google Trends

Rufen Sie Trenddaten mit anpassbaren Zeiträumen und Widget-Optionen ab.

Required Parameters:

  • brd_json=1: Gibt geparste JSON-Ergebnisse zurück.
  • brd_trends: Legt Widgets fest (z. B. timeseries,geo_map).

Time Range:

  • date: Definiert den Zeitraum (z. B. now 1-d für den vergangenen Tag).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://trends.google.com/trends/explore?q=pizza&date=now+1-d&brd_trends=timeseries,geo_map&brd_json=1"

4. Google Reviews

Rufen Sie Reviews mithilfe einer Feature-ID ab und sortieren Sie sie nach Bedarf.

Key Parameters:

  • fid: Feature-ID aus Suchergebnissen.
  • sort: Sortierreihenfolge (z. B. newestFirst, ratingHigh).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user "brd-customer-<id>-zone-<name>:<pass>" \
  "https://www.google.com/reviews?fid=0x808fba02425dad8f&sort=newestFirst"

5. Google Lens

Suchen Sie per Bild über eine URL oder einen Datei-Upload.

Image Search:

  • url: Die Bild-URL, nach der gesucht werden soll.
  • brd_json=1: Gibt Ergebnisse als JSON zurück.
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://lens.google.com/uploadbyurl?url=https://example.com/image.jpg&brd_json=1"

6. Google Hotels

Passen Sie Hotelsuchen mit Buchungsdaten und Währungsoptionen an.

Booking Parameters:

  • brd_dates: Check-in- und Check-out-Daten (YYYY-MM-DD,YYYY-MM-DD).
  • brd_currency: Währungscode (z. B. USD, EUR).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.google.com/travel/hotels?q=hotels+new+york&brd_dates=2022-01-20,2022-02-05"

7. Google Flights

Suchen Sie nach Flügen mit ähnlichen Lokalisierungsparametern.

curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.google.com/travel/flights?q=flights+new+york&gl=us&hl=en"

Bing

Konfigurieren Sie Bing-Abfragen mit Optionen für Lokalisierung, Geo-Targeting, Paginierung, Geräte- und Browser-Targeting sowie Ausgabeformate. Sehen Sie sich die dedicated Bing API an.

Localization

  • setLang: Sprache für die Oberfläche (z. B. setLang=en-US).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.bing.com/search?q=pizza&setLang=en-US"

Geo-Location

  • location: Suchursprung (z. B. location=New+York).
  • cc: Ländercode (z. B. cc=us).
  • mkt: Marktcode (z. B. mkt=en-US).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.bing.com/search?q=pizza&location=New+York&cc=us&mkt=en-US"

Pagination

  • count: Anzahl der Ergebnisse (z. B. count=50).
  • first: Offset für die Paginierung (z. B. first=11 für die zweite Seite).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.bing.com/search?q=pizza&count=50&first=11"

Filters

  • safesearch: Filter für Inhalte für Erwachsene (z. B. safesearch=off).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.bing.com/search?q=pizza&safesearch=off"

Device Targeting

  • brd_mobile: Legt den Gerätetyp fest (z. B. brd_mobile=1 für mobile Geräte oder brd_mobile=ios).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.bing.com/search?q=pizza&brd_mobile=1"

Browser Targeting

  • brd_browser: Legt den Browser fest (z. B. brd_browser=chrome).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.bing.com/search?q=pizza&brd_browser=chrome"

Parsing

  • brd_json: Gibt geparstes JSON zurück (z. B. brd_json=1).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.bing.com/search?q=pizza&brd_json=1"

Yandex

Konfigurieren Sie Yandex-Abfragen kurz mit Parametern für Lokalisierung, Paginierung, Zeitraum sowie Geräte-/Browser-Targeting. Sehen Sie sich die dedicated Yandex API an.

Localization

  • lr: Legt die Region fest (z. B. lr=84 für die USA).
  • lang: Seitensprache (z. B. lang=en).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.yandex.com/search/?text=pizza&lr=84&lang=en"

Pagination

  • p: Ergebnis-Seitennummer (z. B. p=2 für die zweite Seite).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.yandex.com/search/?text=pizza&p=2"

Time Range

  • within: Legt den Zeitraum fest (z. B. within=1).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.yandex.com/search/?text=pizza&within=1"

Device Targeting

curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.yandex.com/search/?text=pizza&brd_mobile=1"

Browser Targeting

curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://www.yandex.com/search/?text=pizza&brd_browser=chrome"

DuckDuckGo

Ein kurzer Überblick über die Anpassung der DuckDuckGo-Suche mittels Lokalisierung, Safe Search, Zeitraum sowie Geräte-/Browser-Targeting. Sehen Sie sich die dedicated DuckDuckGo API an.

Localization

  • kl: Land und Sprache (z. B. kl=us-en).
  • kad: Definiert die Sprache für Elemente der Benutzeroberfläche.
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://duckduckgo.com/?q=pizza&kl=us-en"

Safe Search

  • kp: Aktiviert Safe Search (z. B. kp=1).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://duckduckgo.com/?q=pizza&kp=1"

Time Range

  • df: Legt den Zeitraum fest (z. B. df=d).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://duckduckgo.com/?q=pizza&df=d"

Device Targeting

  • brd_mobile: Für Mobile-Geräte-Emulation.
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://duckduckgo.com/?q=pizza&brd_mobile=1"

Browser Targeting

  • brd_browser: Zum Festlegen eines Browsers (z. B. chrome).
curl \
  --proxy brd.superproxy.io:33335 \
  --proxy-user brd-customer-<customer-id>-zone-<zone-name>:<zone-password> \
  "https://duckduckgo.com/?q=pizza&brd_browser=chrome"

Other Settings for SERP API

Asynchronous Requests

  • Sync (Standard): Sie erhalten sofort eine Antwort in Echtzeit.
  • Async: Rufen Sie Ergebnisse später ab (ideal für hohe Anfragevolumina).

Mehr erfahren: How Async Works

Multi-Query Requests

Senden Sie parallele Abfragen in einem API-Aufruf und teilen Sie dabei dieselbe IP-Adresse und Sitzung über den Parameter multi.

multi:[
  {"keyword":"shoes","num":50},
  {"keyword":"shoes","num":200}
]

Mehr erfahren: Multiple Queries Guide

Support & Resources

About

Eine Bright Data SERP API auf Enterprise-Niveau für die großflächige Echtzeit-Extraktion von Suchmaschinen-Ergebnissen.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published