In diesem Artikel erfahren Sie mehr:
- Was die Google AI Übersicht ist.
- Wie es funktioniert und warum es wertvoll sein kann, es zu scrapen.
- Eine Schritt-für-Schritt-Anleitung zum Scrapen der Google AI-Übersicht.
- Welche Herausforderungen damit verbunden sind und wie man sie bewältigen kann.
Lasst uns eintauchen!
Was ist die Google AI Übersicht?
Google AI Overview ist eine in die Google-Suche integrierte Funktion, die KI-generierte Zusammenfassungen an der Spitze der Suchergebnisse liefert. Hinter den Kulissen wird diese Funktion durch das große Sprachmodell Gemini von Google unterstützt.
Diese Übersichten fassen Informationen aus mehreren Webquellen zusammen, um prägnante Antworten auf Benutzeranfragen zu geben. Oft enthalten sie Links zu den Originalartikeln, die den Nutzern helfen, tiefer zu gehen.
Ab Mai 2025 sind KI-Übersichten nun in über 200 Ländern und Gebieten und in mehr als 40 Sprachen verfügbar. Ursprünglich war die Funktion nur in den Vereinigten Staaten verfügbar.
Warum Google AI-Übersichten scrapen?
Google AI Overview-Antworten sind mehr als nur allgemeine Antworten, die Gemini oder jeder andere AI-Anbieter generieren könnte. Der Hauptunterschied besteht darin, dass sie in den SERP-Links(Search Engine Results Pages) und dem Inhalt dieser Links verankert sind.
Mit anderen Worten: Ihr Inhalt wird durch Artikel, Seiten und Websites aus der Praxis untermauert und enthält oft Links für weiterführende Lektüre und Erweiterungen. Dies ist etwas, das LLMs in der Regel nur schwer erreichen können.
Durch programmatisches Scraping von Google AI Overviews könnte man also eine Art KI-gesteuerten SERP-Chatbot erstellen, der tatsächliche SERP-Ergebnisse nutzt, um RAG-optimierte Antworten zu produzieren. Die Idee ist, Antworten zu erhalten, die auf aktuellen, überprüfbaren Webinhalten basieren.
Wie Sie am Ende dieses Artikels erfahren werden, ist dieser Ansatz zwar sicherlich interessant, birgt aber auch einige Herausforderungen in sich. Daher sollten Sie sich unseren Leitfaden zur Erstellung eines SERP-Chatbots mit RAG ansehen.
Wie man Google AI Übersicht in Python scrapen kann: Schritt-für-Schritt-Anleitung
In diesem Tutorial führen wir Sie durch den Prozess des Scrapens der Google AI Übersicht. Sie werden lernen, wie Sie ein Python-Skript erstellen, das:
- Verbindet sich mit Google.
- Führt eine Suchanfrage durch.
- Wartet darauf, dass die AI-Übersicht geladen wird.
- Kratzt den HTML-Code aus der Datei.
- Konvertiert den Inhalt in Markdown.
- Exportiert sie in eine Ausgabedatei
Folgen Sie den nachstehenden Schritten, um zu sehen, wie Sie Google AI Overview Scraping durchführen!
Schritt 1: Projekt einrichten
Bevor Sie beginnen, stellen Sie sicher, dass Sie Python 3 auf Ihrem Rechner installiert haben. Falls nicht, laden Sie es herunter und folgen Sie dem Installationsassistenten.
Öffnen Sie ein Terminal und führen Sie die folgenden Befehle aus:
mkdir google-ai-overview-scraper
cd google-ai-overview-scraper
python -m venv venv
Diese erstellen einen neuen Ordner google-ai-overview-scraper/
für Ihr Scraper-Projekt und initialisieren eine virtuelle Umgebung.
Laden Sie den Projektordner in Ihre bevorzugte Python-IDE. PyCharm Community Edition oder Visual Studio Code mit der Python-Erweiterung sind zwei gute Optionen.
Erstellen Sie im Projektordner eine Datei scraper.py
:
google-ai-overview-scraper/
├── venv/ # Your Python virtual environment
└── scraper.py # Your scraping script
scraper.py
ist jetzt ein leeres Skript, aber es wird bald die Scraping-Logik enthalten.
Aktivieren Sie im Terminal der IDE die virtuelle Umgebung. In Linux oder macOS, feuern Sie diesen Befehl:
source ./venv/bin/activate
Alternativ dazu können Sie unter Windows Folgendes ausführen:
venv/Scripts/activate
Großartig! Sie haben nun eine saubere Python-Umgebung für Ihr Scraping-Projekt eingerichtet.
Schritt #2: Playwright installieren
Google ist eine dynamische Plattform, und seit den letzten Aktualisierungen ist für das vollständige Laden der meisten Seiten die Ausführung von JavaScript erforderlich. Außerdem kann es schwierig sein, eine gültige Google-Such-URL manuell zu erstellen. Deshalb ist der beste Weg, mit der Google-Suche zu interagieren, die Simulation des Nutzerverhaltens in einem Browser.
Mit anderen Worten: Um den Abschnitt “AI Overview” zu scrapen, benötigen Sie ein Browser-Automatisierungstool. Damit können Sie einen echten Browser starten, Webseiten laden und programmgesteuert mit ihnen interagieren – genau wie ein Benutzer es tun würde.
Eines der besten Browser-Automatisierungstools für Python ist Playwright. Installieren Sie Playwright in Ihrer aktivierten virtuellen Python-Umgebung über das Pip-Paket playwright
:
pip install playwright
Schließen Sie nun die Installation von Playwright mit ab:
python -m playwright install
Mit diesem Befehl werden die erforderlichen ausführbaren Browserdateien und andere Komponenten heruntergeladen, die Playwright zur Steuerung von Webbrowsern benötigt.
Weitere Einzelheiten zur Verwendung dieses Tools finden Sie in unserem Leitfaden zum Web Scraping mit Playwright.
Großartig! Sie haben nun alles vorbereitet, um mit dem Scraping des Bereichs “AI Overview” von Google zu beginnen.
Schritt #3: Navigieren Sie zur Google-Homepage
Öffnen Sie Ihre scraper.py-Datei
, importieren Sie Playwright und initialisieren Sie eine Chromium-Instanz im Headless-Modus:
import asyncio
from playwright.async_api import async_playwright
async def run():
async with async_playwright() as p:
# Start a new Chromium instance
browser = await p.chromium.launch(headless=True) # Set to False while developing
context = await browser.new_context()
page = await context.new_page()
Dieses Snippet erstellt eine Playwright-Seiteninstanz
, mit der Sie eine Browser-Registerkarte programmatisch steuern können. Wenn Sie headless=True
einstellen, wird der Browser im Hintergrund und ohne grafische Benutzeroberfläche ausgeführt. Wenn Sie entwickeln oder debuggen möchten, setzen Sie headless=False
, um zu beobachten, was Ihr Skript während der Ausführung tut.
Da async_playwright
asynchron läuft, muss das Skript das asyncio-Modul
von Python verwenden.
Haftungsausschluss: Beachten Sie, dass neue Google AI Overview-Funktionen in der Regel zuerst in den Vereinigten Staaten eingeführt werden. Um genauere Ergebnisse zu erzielen, müssen Sie Ihren Computer möglicherweise in einer Stadt in den USA lokalisieren. Erreichen Sie dies, indem Sie Playwright mit einem Web-Proxy integrieren. Werfen Sie einen Blick auf unsere Proxy-Optionen für die USA.
Von nun an gehen wir davon aus, dass Sie von den Vereinigten Staaten aus operieren.
Verwenden Sie nun die goto()
-Methode von Playwright, um die Google-Homepage zu öffnen:
await page.goto("https://google.com/")
Denken Sie immer daran, die Ressourcen zu bereinigen, indem Sie den Browser am Ende Ihres Skripts schließen:
await browser.close()
Nimmt man das alles zusammen, erhält man:
import asyncio
from playwright.async_api import async_playwright
async def run():
async with async_playwright() as p:
# Start a new Chromium instance
browser = await p.chromium.launch(headless=True) # Set to False while developing
context = await browser.new_context()
page = await context.new_page()
# Navigate to Google
await page.goto("https://google.com/")
# scraping logic goes here ...
# Close the browser and free resources
await browser.close()
asyncio.run(run())
Fantastisch! Sie sind bereit, dynamische Websites wie Google zu scrapen.
Schritt #4: Das Suchformular abschicken
Rufen Sie die Google-Startseite in Ihrem Browser auf. Klicken Sie mit der rechten Maustaste auf die Suchleiste und wählen Sie “Inspizieren”, um die Entwicklertools des Browsers zu öffnen:
Die HTML-Struktur von Google verwendet häufig dynamisch generierte Klassen und Attribute, die sich wahrscheinlich bei jeder Bereitstellung ändern. Das macht sie für Scraping unzuverlässig, da Ihre Selektoren mit der Zeit kaputt gehen.
Verwenden Sie stattdessen stabile HTML-Attribute. Die Textarea für die Suche hat zum Beispiel ein eindeutiges aria-label-Attribut
:
textarea[aria-label="Search"]
Verwenden Sie die fill()
-Methode, um den Suchtextbereich auszuwählen und mit der Google-Suchanfrage zu füllen:
await page.fill("textarea[aria-label='Search']", search_query)
In diesem Beispiel ist die Variable search_query
wie folgt definiert:
search_query = "What is web scraping?"
Beachten Sie, dass die Verwendung einer fragestellungsähnlichen Abfrage eine gute Möglichkeit ist, Google dazu zu bringen, den KI-Übersichtsabschnitt zu erstellen. Dies ist wichtig, da dieser Abschnitt nicht immer in den Suchergebnisseiten enthalten ist. Sie können die Suchabfrage gerne an Ihren speziellen Anwendungsfall anpassen.
Lösen Sie dann die Suche aus, indem Sie das Drücken der Eingabetaste simulieren:
await page.keyboard.press("Enter")
Wenn Sie das Skript im Headful-Modus(headless=False
) ausführen und einen Haltepunkt in der Zeile page.close()
setzen, sollten Sie folgendes sehen:
Beachten Sie den Abschnitt “AI Overview” oben auf der Ergebnisseite. Wenn er nicht angezeigt wird, versuchen Sie, das Skript mit einer anderen, eher fragestellungsähnlichen Abfrage erneut auszuführen. Erstaunlich!
Schritt #5: Scrapen Sie den Google AI-Übersichtsbereich
Wenn Sie sich ansehen, wie die KI-Übersichtsfunktion von Google funktioniert, werden Sie feststellen, dass drei Szenarien möglich sind:
- Zwischengespeicherte Antwort: Das AI-Übersichts-Snippet ist bereits im Cache gespeichert und wird sofort angezeigt.
- Generierung in Echtzeit: Die KI-Übersicht wird dynamisch generiert, mit einer kurzen Verzögerung, während Google die Anfrage verarbeitet.
- Keine AI-Übersicht: Google zeigt den Abschnitt KI-Übersicht überhaupt nicht an.
In diesem Abschnitt wollen wir uns auf Szenario 2 konzentrieren, bei dem die KI-Übersicht im laufenden Betrieb erstellt wird. Dies ist der kniffligste Fall, der auch Szenario 1 abdeckt.
Um sie auszulösen, versuchen Sie, neue oder weniger häufige Abfragen zu verwenden. Zum Beispiel:
Wie oben gezeigt, erscheint der Abschnitt “KI-Übersicht” nach einigen Millisekunden der Verarbeitung. Insbesondere kann er nur dann als fertig angesehen werden, wenn sein Titelelement den Text “AI Overview” enthält.
Untersuchen Sie also das Element, das den Titel AI Overview enthält:
Sie können den Titel mit dem folgenden CSS-Selektor auswählen:
div[jsname][role="heading"] strong
Um sicherzustellen, dass der Abschnitt “AI Overview” vorhanden ist, warten Sie, bis dieses Element erscheint und den richtigen Text enthält:
await page.locator(
"div[jsname][role='heading'] strong", has_text="ai overview"
).first.wait_for(timeout=30000)
Damit wird bis zu 30 Sekunden (30000 Millisekunden) gewartet, bis das Element mit dem Text “ai overview” (Groß- und Kleinschreibung wird nicht berücksichtigt) auf der Seite erscheint.
Nachdem Sie sich vergewissert haben, dass der KI-Übersichtsbereich geladen wurde, können Sie ihn nun scrapen. In den meisten Fällen ist ein Teil des Inhalts zunächst hinter einer Schaltfläche “Mehr anzeigen” verborgen:
Um die vollständige Antwort abzurufen, prüfen Sie, ob die Schaltfläche “Mehr anzeigen” vorhanden ist, und klicken Sie darauf:
try:
# Clicking the "Show more" button if it is present on the page
ai_overview_show_more_button = page.locator("div[aria-label='Show more AI Overview']").first
await ai_overview_show_more_button.click()
except PlaywrightTimeoutError:
print("'Show more' button not present")
Vergessen Sie nicht, PlaywrightTimeoutError
zu importieren, der ausgelöst wird, wenn die Funktion locator()
das angegebene Element nicht findet:
from playwright.async_api import TimeoutError as PlaywrightTimeoutError
Sobald der gesamte Abschnitt sichtbar ist, prüfen Sie die HTML-Struktur, um festzustellen, wie Sie ihn auswählen können:
Wie Sie sehen können, kann der Hauptinhalt der AI-Übersicht mit diesem CSS-Selektor ausgewählt werden:
div[jsname][data-rl] div
Verwenden Sie den folgenden Code, um das Element zu finden und seinen HTML-Code zu extrahieren:
ai_overview_element = page.locator("div[jsname][data-rl] div").first
ai_overview_html = await ai_overview_element.evaluate("el => el.outerHTML")
Wenn Sie sich fragen, warum wir den HTML-Code extrahiert haben und nicht nur den Text, lesen Sie weiter.
Das war’s! Sie haben erfolgreich den Abschnitt “Google AI Overview” gecrawlt.
Schritt Nr. 6: Konvertieren Sie die Google AI-Übersicht HTML in Markdown
Beim Web-Scraping geht es meist darum, Text aus Elementen zu extrahieren – nicht den vollständigen HTML-Code. In den meisten Fällen handelt es sich bei den KI-generierten Inhalten im Abschnitt “Google AI Overview” jedoch nicht um reinen Text.
Stattdessen kann er Aufzählungspunkte, Links, Zwischenüberschriften und sogar Bilder enthalten. Würde man diesen Inhalt als reinen Text behandeln, würde die gesamte Struktur und der Kontext verloren gehen – wertvolle Informationen, die Sie erhalten müssen.
Ein besserer Ansatz ist daher, die KI-Übersicht als rohes HTML zu behandeln und dann in Markdown zu konvertieren, ein ideales Format für KI-Anwendungen.
Um den HTML-Code in Markdown umzuwandeln, installieren Sie Markdownify in Ihrer aktivierten Umgebung:
pip install markdownify
Importieren Sie es:
from markdownify import markdownify as md
Und nutzen Sie es für die Umwandlung von HTML- in Markdown-Daten:
ai_overview_markdown = md(ai_overview_html)
Großartig! Jetzt müssen Sie nur noch die gescrapte AI-Übersicht in eine Markdown-Datei exportieren.
Schritt #7: Exportieren Sie die gescrapten Daten
Verwenden Sie die Python-Standardbibliothek, um eine Ausgabedatei namens ai_overview.md
zu öffnen und den konvertierten Markdown-Inhalt in diese Datei zu schreiben:
with open("ai_overview.md", "w", encoding="utf-8") as f:
f.write(ai_overview_markdown)
Dies ist das Ende Ihrer Reise zum Scraping der Google AI-Übersicht!
Schritt #8: Alles zusammenfügen
Momentan sollte scraper.py
enthalten:
import asyncio
from playwright.async_api import async_playwright
from playwright.async_api import TimeoutError as PlaywrightTimeoutError
from markdownify import markdownify as md
async def run():
async with async_playwright() as p:
# Start a new Chromium instance
browser = await p.chromium.launch(headless=True) # Set to False while developing
context = await browser.new_context()
page = await context.new_page()
# Navigate to Google
await page.goto("https://google.com/")
# Fill out search form
search_query = "What is web scraping?" # Replace it with the search query of interest
await page.fill("textarea[aria-label='Search']", search_query)
await page.keyboard.press("Enter")
# Wait for the AI overview section to be ready
await page.locator(
"div\[jsname\][role='heading'] strong", has_text="ai overview"
).first.wait_for(timeout=30000)
try:
# Clicking the "Show more" button if it is present on the page
ai_overview_show_more_button = page.locator("div[aria-label='Show more AI Overview']").first
await ai_overview_show_more_button.click()
except PlaywrightTimeoutError:
print("'Show more' button not present")
# Extract the AI overview HTML
ai_overview_element = page.locator("div\[jsname\][data-rl] div").first
ai_overview_html = await ai_overview_element.evaluate("el => el.outerHTML")
# Convert the HTML to Markdown
ai_overview_markdown = md(ai_overview_html)
# Export the Markdown to a file
with open("ai_overview.md", "w", encoding="utf-8") as f:
f.write(ai_overview_markdown)
# Close the browser and free resources
await browser.close()
asyncio.run(run())
Wahnsinn! Mit weniger als 50 Zeilen Code haben Sie soeben den Abschnitt “KI-Übersicht” von Google gekratzt.
Starten Sie den oben genannten Google AI Overview scaper mit:
python script.py
Wenn alles wie erwartet funktioniert, wird eine Datei ai_overview.md
im Projektordner erscheinen. Öffnen Sie sie und Sie sollten etwas sehen wie:
Web scraping is the process of using automated tools (called scrapers or bots) to extract content and data from websites. Unlike screen scraping, which captures only the visible pixels, web scraping delves deeper to retrieve the underlying HTML code and data stored in a website's database. This extracted data can then be used for various purposes like price comparison, market research, or data analysis.
Here's a more detailed explanation:
* **Automated Extraction:**
Web scraping involves using software to automatically visit websites, locate and extract specific data, and save it in a structured format like a CSV file or database.
* **HTML and Database Data:**
Scrapers don't just copy the visual content; they access the HTML code and data stored in the website's database to retrieve more comprehensive information.
* **Various Use Cases:**
Web scraping is employed for various purposes, including price comparison, market research, competitor analysis, lead generation, sentiment analysis, and more.
* **Not Just for Businesses:**
While businesses often use web scraping for data-driven decision-making, it's also valuable for individuals seeking price comparisons, market trends, or general data analysis.
* **Consider Ethical and Legal Implications:**
When web scraping, it's crucial to be aware of the website's terms of service and robots.txt file to ensure you are not violating their policies or engaging in illegal activities.
Kopieren Sie den obigen Markdown-Inhalt und fügen Sie ihn in einen Markdown-Viewer wie StackEdit ein:
Das ist genau die strukturierte, leicht lesbare und informationsreiche Version des Google AI Overview Snippets – konvertiert von rohem HTML zu sauberem Markdown!
Et voilà! Auftrag erfüllt.
Herausforderungen beim Scraping der Google AI-Übersicht
Wenn Sie das Skript weiterhin im Kopfzeilenmodus ausführen, werden Sie wahrscheinlich irgendwann auf diese blockierende Seite stoßen:
Wenn Sie zu viele automatisierte Anfragen stellen oder eine IP-Adresse mit einer niedrigen Zuverlässigkeitsbewertung verwenden, wird Google Ihre Aktivität als Bot erkennen und Sie mit einem reCAPTCHA herausfordern.
Als Workaround können Sie versuchen, CAPTCHAs in Python zu umgehen. Dies kann bei einfacheren CAPTCHAs funktionieren, schlägt aber oft bei fortgeschritteneren oder neueren reCAPTCHA-Versionen wie reCAPTCHA v3 fehl.
In solchen Fällen benötigen Sie wahrscheinlich einen hochwertigen CAPTCHA-Lösungsdienst. Ein anderer Ansatz besteht darin, Playwright so zu konfigurieren, dass es mit einem anderen Browser als Chromium arbeitet. Das Problem dabei ist, dass Playwright standardmäßig Chromium (oder einen anderen Browser) auf eine Weise instrumentiert, die von Googles Anti-Bot-Systemen erkannt werden kann.
Um eine Erkennung zu vermeiden, können Sie Playwright in den AI Agent Browser integrieren. Dabei handelt es sich um einen mit Playwright kompatiblen Cloud-Browser, der auf Web-Scraping und Datenabfrage in agentenbasierten Workflows spezialisiert ist.
Zu den Vorteilen dieses Ansatzes gehören eine nahezu unbegrenzte Skalierbarkeit und eine erhebliche Reduzierung der CAPTCHA-Herausforderungen. Selbst wenn CAPTCHAs auftauchen, verfügt Agent Browser über CAPTCHA-Lösungsfunktionen sowie über eine Proxy-Integration, die es Ihnen ermöglicht, Ihr Google AI Overview Scraping auf ein beliebiges Land oder eine beliebige Sprache auszurichten.
Schlussfolgerung
In diesem Lernprogramm haben Sie gelernt, was die Google AI-Übersicht ist und wie man Daten daraus abruft. Wie Sie gesehen haben, sind für die Erstellung eines einfachen Python-Skripts zum automatischen Abrufen dieser Daten nur ein paar Zeilen Code erforderlich.
Diese Lösung eignet sich zwar gut für kleine Projekte, ist aber für umfangreiches Scraping nicht geeignet. Google verwendet einige der fortschrittlichsten Anti-Bot-Technologien der Branche, die zu CAPTCHAs oder IP-Sperren führen können. Außerdem würde die Skalierung dieses Prozesses auf viele Seiten die Infrastrukturkosten erheblich erhöhen.
Wenn Sie Google SERP-Daten für Ihre KI-Workflows benötigen, sollten Sie eine API verwenden, die KI-fähige SERP-Daten direkt bereitstellt, wie beispielsweise die SERP-API von Bright Data.
Erstellen Sie ein kostenloses Bright Data-Konto und erhalten Sie Zugang zu allen Lösungen in unserer KI-Dateninfrastruktur!