Wie man Yelp-Geschäfts- und Bewertungsdaten für Marktforschung scrapt

Yelp hat im letzten Jahr seine Anti-Bot-Haltung verschärft und seine Bedingungen verbieten Scraping ausdrücklich. Hier ist, wie die Daten strukturiert sind, wie man mit residential geo IPs darauf zugreift und die konformen Wege, die es zu kennen lohnt.

Yelp ist eine der reichhaltigsten Quellen für lokale Geschäftsinformationen – Bewertungen, Bewertungstexte, Kontaktdaten und Kategoriedaten über Millionen von Einträgen. Es ist auch eines der schwierigeren Ziele zum Scrapen. Yelps Bedingungen verbieten Scraping ausdrücklich, und die Seite hat im letzten Jahr ihre Anti-Bot-Haltung merklich verschärft, sodass beiläufige Skripte, die zuvor funktionierten, nun auf Hindernisse stoßen. Dieser Leitfaden behandelt, wie Yelp seine Daten strukturiert, wie geo-abgestimmte Residential-Proxies darauf zugreifen, die praktischen Grenzen und die konformen Wege, die es zu kennen lohnt, bevor Sie etwas bauen.

Was es wert ist zu scrapen - und die Realität der ToS

Die wertvollen Felder sind die offensichtlichen: Geschäftsname, Adresse, Telefonnummer, Sternebewertung, Bewertungsanzahl, Kategorie und der Bewertungstext selbst mit der Stimmung des Rezensenten. Aggregiert über eine Metropole treibt diese Daten die Wettbewerbsanalyse, die lokale Marktgrößenbestimmung und das Stimmungsverfolgung an. Bevor Sie beginnen, seien Sie sich der Regeln bewusst. Yelps eigene Supportseiten geben an, dass die Seite das Scraping, Indexieren oder Mining ihrer Inhalte gemäß Abschnitt 6(b) ihrer Nutzungsbedingungen nicht erlaubt. Das macht die Sammlung technisch nicht unmöglich, aber es bedeutet, dass dies ein Ziel ist, bei dem Sie den Wert gegen die Bedingungen abwägen, öffentliche nicht-personenbezogene Daten bevorzugen und das Volumen bescheiden halten. Unser Überblick über die Legalität von Web Scraping im Jahr 2026 gibt den weiteren Rahmen - und dies ist keine Rechtsberatung.

Wie Yelp seine Daten strukturiert

Das Einzige, was am nützlichsten zu wissen ist: Die Daten, die Sie wollen, sind selten im sichtbaren HTML. Yelp füllt seine Seiten aus JSON, das in <script>-Tags eingebettet ist, und seine Bewertungslisten laden von internen JSON-Endpunkten. Der zuverlässige Ansatz ist also, die eingebettete Nutzlast zu erfassen, anstatt gegen brüchige CSS-Selektoren in einem React DOM zu kämpfen:

import requests, re, json

proxy = "http://USER:PASS@us.quantumproxies.io:8000"  # geo-matched
proxies = {"http": proxy, "https": proxy}
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36",
    "Accept-Language": "en-US,en;q=0.9",
}

r = requests.get("https://www.yelp.com/biz/example-business-san-francisco",
                 headers=headers, proxies=proxies, timeout=25)

# Yelp embeds page state as JSON inside script tags
for blob in re.findall(r'<script[^>]+application/json[^>]*>(.*?)</script>', r.text, re.S):
    try:
        data = json.loads(blob)
    except ValueError:
        continue
    # inspect data for businessName, rating, reviewCount, phone

Bewertungsseiten paginieren mit einem start-Offset, das in Schritten von etwa zehn erhöht wird. Eine praktische Obergrenze ist hier wichtig: Automatisierte Yelp-Sammlungen neigen dazu, bei etwa 240 Ergebnissen pro Suche zu enden, weil Yelp begrenzt, wie tief seine eigene Ergebnispagination geht. Planen Sie Ihre Abdeckung um dieses Limit herum - segmentieren Sie nach Stadt, Kategorie und Nachbarschaft, anstatt endlos durch eine breite Abfrage zu blättern:

def yelp_search(term, loc, cap=240):
    """Page a Yelp search via the `start` offset (steps of 10, ~240 ceiling)."""
    results = []
    for start in range(0, cap, 10):
        r = requests.get("https://www.yelp.com/search",
                         params={"find_desc": term, "find_loc": loc, "start": start},
                         headers=headers, proxies=proxies, timeout=25)
        page = parse_hydration(r.text)   # your JSON extractor from above
        if not page:
            break                          # empty page = end of results
        results.extend(page)
    return results

Zwei Parsing-Hinweise sparen Stunden. Yelps Bewertungstext und Rezensenten-Metadaten befinden sich in der eingebetteten Nutzlast neben den Geschäftsfeldern, sodass Sie, sobald Sie den richtigen JSON-Block gefunden haben, selten eine zweite Anfrage pro Seite benötigen. Und da die Seite eine React-App ist, ändern sich die sichtbaren Klassennamen oft, während das eingebettete Datenschema viel stabiler ist - verankern Sie Ihre Extraktion an den JSON-Schlüsseln, nicht am DOM, und Ihr Scraper überlebt Neugestaltungen, die selektorbasierte Tools über Nacht brechen.

Geo-bewusste Yelp-Scraping-Pipeline, die einen Suchbegriff und eine Stadt durch einen Residential-Exit in der Zielmetropole leitet und dann eingebettetes Hydrations-JSON in Geschäfts- und Bewertungszeilen parst
Yelp-Ergebnisse sind standortspezifisch, daher entscheidet die Exit-Stadt, was Sie sehen. Parsen Sie das eingebettete JSON, nicht das gerenderte HTML.

Geotargeting ist das ganze Spiel

Yelp ist ein lokales Produkt, daher hängen die Ergebnisse stark davon ab, wo die Anfrage zu kommen scheint. Eine "Kaffee"-Suche, die an einen New Yorker Exit gesendet wird, liefert andere Geschäfte und eine andere Reihenfolge als dieselbe Suche von einem San Francisco Exit. Wenn Ihre Forschung auf eine bestimmte Metropole abzielt, muss Ihr Proxy in dieser Metropole enden - alles andere liefert verzerrte Daten. Ein Residential-Proxy-Pool mit stadtgenauem Targeting in über 200 Ländern ermöglicht es Ihnen, den Exit auf den Markt zu fixieren, den Sie analysieren, was Sie auch innerhalb des Vertrauensbereichs hält, den Yelps Anti-Bot-Schicht für lokalen Verkehr erwartet.

Geo-Kontrolle schaltet auch die wertvollste Analyse frei, die Yelp unterstützt: den Vergleich derselben Kategorie über Metropolen hinweg. Führen Sie eine Abfrage - "Kaffee", "Klempner", "Fitnessstudios" - über zehn Städte von zehn passenden Residential-Exits aus und Sie erhalten durchschnittliche Bewertungen, Bewertungsvolumen und Preisklasse Stadt für Stadt. Dieses vergleichende Datenset ist das Rückgrat der lokalen Marktgrößenbestimmung, und kein Einzelstandort-Scrape kann es produzieren.

Geo-targeted Residential Proxies erhalten

Die Anti-Bot-Durchgreifaktion überwinden

Seit Yelp die Erkennung verschärft hat, trennen drei Dinge einen Lauf, der abgeschlossen wird, von einem, der bei Herausforderungen stecken bleibt. Verwenden Sie Residential IPs, die auf das Zielgeo abgestimmt sind, nicht auf Rechenzentrumsbereiche. Senden Sie einen vollständigen, kohärenten Browser-Header-Satz - einen echten Chrome- oder Safari-User-Agent mit passenden Accept und Accept-Language, nicht einen Standard-Bibliotheksstring. Und dosieren Sie konservativ mit Jitter, denn Ausbrüche von einer IP sind der schnellste Auslöser. Wenn Yelp trotzdem zu JavaScript-Herausforderungen oder CAPTCHAs eskaliert, ist das das Signal, das Handrollen zu stoppen und die Seite an eine Scraper API zu übergeben, die JavaScript rendert, einen echten Browser-Fingerabdruck trägt und IPs für Sie rotiert - normalerweise eine höhere Erfolgsrate für weniger Code.

Drei Wege, um Yelp-Daten zu erhalten, verglichen - Scraping öffentlicher Seiten, die offizielle Fusion API und das offene Datenset - gewichtet nach Umfang, Aktualität und Konformität
Wägen Sie drei Wege ab, bevor Sie bauen: flexibles Scraping, die sanktionierte Fusion API oder das kostenlose, aber statische offene Datenset.

Konforme Alternativen, die es zu kennen lohnt

Bevor Sie sich zum Scraping verpflichten, wägen Sie zwei sanktionierte Wege ab. Yelps offizielle Fusion API liefert Geschäftsdaten und einen gekürzten Ausschnitt von Bewertungsdaten unter einem API-Schlüssel und Ratenlimits - weniger Flexibilität, aber keine ToS-Reibung. Und Yelp veröffentlicht ein offenes Datenset mit Millionen von Bewertungen, Fotos und Geschäftsattributen zur Forschungsnutzung unter seiner eigenen Lizenz; es ist ein statischer Schnappschuss anstelle von Live-Daten, aber für Modelltraining oder historische Analysen ist es oft alles, was Sie brauchen. Für Live-Wettbewerbs- und Bewertungsüberwachung über Quellen hinweg, übertragen sich dieselben Techniken auf Google Maps Geschäftsdaten, Trustpilot-Bewertungen und TripAdvisor.

Häufig gestellte Fragen

Ist es legal, Yelp zu scrapen?

Yelps Nutzungsbedingungen verbieten ausdrücklich das Scraping, Indexieren und Mining seiner Inhalte, sodass die Sammlung gegen die angegebenen Regeln der Seite erfolgt, selbst wenn sie auf öffentliche Seiten abzielt. Rezensentennamen sind auch personenbezogene Daten gemäß der DSGVO und ähnlichen Gesetzen. Bevorzugen Sie die Fusion API oder das offene Datenset, wo sie passen, halten Sie das Volumen bescheiden und konsultieren Sie einen Anwalt für alles im großen Maßstab. Dies ist keine Rechtsberatung.

Wie viele Ergebnisse kann man pro Yelp-Suche scrapen?

Etwa 240 Geschäfte pro Suche im Durchschnitt, weil Yelp begrenzt, wie tief seine Ergebnispagination geht. Um einen Markt vollständig abzudecken, segmentieren Sie Ihre Abfragen nach Stadt, Kategorie und Nachbarschaft, anstatt durch eine breite Suche zu blättern - viele enge Abfragen schlagen eine tiefe.

Warum erhalte ich unterschiedliche Yelp-Ergebnisse von verschiedenen Servern?

Weil Yelp standortbewusst ist und Ergebnisse nach der Geographie der anfragenden IP personalisiert. Eine Suche, die von einer anderen Stadt oder einem anderen Land ausgeführt wird, liefert andere Geschäfte und eine andere Reihenfolge. Für genaue lokale Forschung verwenden Sie einen Residential Proxy, der in der exakten Metropole endet, die Sie analysieren.

Wo sind die Daten auf einer Yelp-Seite?

Hauptsächlich in eingebettetem JSON, nicht im sichtbaren HTML. Yelp füllt seine React-Seiten aus JSON in &lt;script&gt;-Tags und lädt Bewertungen von internen JSON-Endpunkten, daher ist das Parsen der eingebetteten Nutzlast zuverlässiger als das Anpassen von CSS-Selektoren an ein DOM, das sich oft ändert.

Yelp ist mit dem richtigen Ansatz scrapbar - parsen Sie das eingebettete JSON, enden Sie in der Zielmetropole auf Residential IPs, respektieren Sie die ~240-pro-Suche-Obergrenze und dosieren Sie konservativ. Aber wägen Sie es zuerst gegen Yelps Bedingungen und die konforme Fusion API und das offene Datenset ab. Wenn die Anti-Bot-Schicht eskaliert, ist eine verwaltete Scraper API der pragmatische nächste Schritt.

Scrapen Sie schwierige lokale Ziele mit der Scraper API