Tony Wang4 Min. LesezeitYelp-Business-Daten scrapen in 2026 (API & Python)
Yelp-Business-Suche, -Profile, -Reviews und -Menus 2026 scrapen — DIY, No-Code oder eine strukturierte API für Yelps App-Backend — samt rechtlichen Grundlagen.
Am schnellsten scrapst du Yelp-Business-Daten 2026, indem du eine strukturierte API aufrufst, die normalisiertes JSON zurückgibt — Search, Business-Profile, Reviews, Menus und Fotos — statt gegen Yelps Anti-Bot-Abwehr anzukämpfen oder gegen die Free-Tier-Decke von Yelps eigener Developer-API zu laufen. Dieser Guide behandelt alle drei Ansätze, was jeder liefert, wo jeder scheitert, und die rechtlichen Grundlagen.
Warum Yelp scrapen?
Weil Yelp Ratings, Reviews und Betriebsdetails für Millionen lokaler Businesses bündelt, ist es nützlich für:
- Local SEO & Lead-Generierung — finde Businesses in einer Kategorie und Gegend, samt Kontakt- und Rating-Daten.
- Review- & Reputations-Monitoring — verfolge das Rating und Review-Volumen eines Business oder eines Konkurrenten über die Zeit.
- Marktforschung — kartiere Kategoriendichte, Preisbänder und Review-Sentiment in einem Markt.
- Restaurant- & Menu-Intelligence — hol Menu-Items und Preise zusammen mit dem Review-Signal.
Ist es legal, Yelp zu scrapen?
Option 1: DIY in Python (und warum es scheitert)
Yelps Website rendert Search- und Business-Pages hinter JavaScript und schützt sie mit mehrschichtiger Anti-Bot-Erkennung:
import requests
# Yelp's public site trips CAPTCHAs and bot-detection fast on datacenter IPs
resp = requests.get("https://www.yelp.com/search?find_desc=pizza&find_loc=Chicago,+IL")
Es funktioniert in der Demo und scheitert dann:
- Aggressives Anti-Bot auf der Website. Datacenter-IPs ziehen innerhalb weniger Requests CAPTCHAs und Blocks auf sich, DIY braucht also Residential-Proxys, realistische Header und Browser-Rendering für die JS-lastigen Pages.
- Yelp Fusions Free-Tier-Deckel. Die offizielle Developer-API deckelt im Free Tier bei 5.000 Calls/Tag und liefert einen gekürzten Datensatz — kein vollständiger Review-Text (nur bis zu drei Review-Auszüge pro Business), und keine Menu- oder Foto-Endpoints.
- Keine offizielle Menu- oder Highlights-API. Für Menu-Items, die vollständige Foto-Galerie und Yelps KI-generierte Review-„Highlights" gibt es in Fusion überhaupt kein Äquivalent.
- Driftende interne Struktur. Egal ob du die Website parst oder Yelps eigene App-Backend-Calls replizierst, Feldnamen und Response-Formen ändern sich ohne Changelog.
Option 2: No-Code-Tools
Visuelle Scraper und "Yelp-Scraper"-Actors aus Marketplaces exportieren CSV/JSON für einmalige Abrufe, aber sie sind umständlich in einer Pipeline zu planen und erben dieselbe Anti-Bot-Fragilität wie ein DIY-Scraper.
Option 3: Eine strukturierte Yelp-API
Für wiederholbare Workflows ruft eine Yelp scraping API direkt Yelps eigenes Mobile-App-Backend auf und liefert normalisiertes JSON — credential-free, ohne Yelp-Login oder API-Key. Suche nach Term und Location:
curl "https://api.crawlora.net/api/v1/yelp/search?term=pizza&location=Chicago,%20IL" \
-H "x-api-key: $CRAWLORA_API_KEY"
Löse dann ein Business über seinen Alias auf und hol Profil, Reviews und Menu in Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/yelp"
results = requests.get(f"{base}/search", headers=h,
params={"term": "pizza", "location": "Chicago, IL"}).json()["data"]["results"]
alias = results[0]["alias"] # e.g. "pequods-pizza-chicago-3"
business = requests.get(f"{base}/business/{alias}", headers=h).json()["data"]
reviews = requests.get(f"{base}/business/{alias}/reviews", headers=h,
params={"limit": 20}).json()["data"]["reviews"]
menu = requests.get(f"{base}/business/{alias}/menu", headers=h).json()["data"]["items"]
Eine Search-Response ist normalisiertes JSON, das du direkt speichern kannst (echte Felder):
{
"code": 200,
"msg": "OK",
"data": {
"term": "pizza",
"location": "Chicago, IL",
"total": 240,
"results": [
{ "id": "pequods-pizza-chicago-3", "alias": "pequods-pizza-chicago-3", "name": "Pequod's Pizza", "rating": 4, "review_count": 8947, "price": "$$", "categories": ["Pizza"], "address": "2207 N Clybourn Ave, Chicago, IL 60614" }
]
}
}
Über Search und Reviews hinaus erreicht derselbe Key /yelp/business/{id}/photos (Galerie), /yelp/business/{id}/reviews/highlights (Yelps KI-extrahierte wiederkehrende Talking Points, jeweils mit einem stützenden Zitat) und /yelp/geocode, um eine beliebige Freitext-Adresse in Koordinaten und Locality-Felder aufzulösen. Speichere eine Zeile pro Business und ziehe die Daten nach Zeitplan neu.
Was du sammeln kannst
Öffentliche Felder: Business-Search-Ergebnisse (id/alias, name, rating, review count, price, categories, address, coordinates, photos); Business-Profil (hours, phone, website, health score, attributes); Reviews (rating, text, language, author, share URL); Review-Highlights (wiederkehrende Themen mit stützenden Zitaten); Menu-Items (name, description, price); Foto-Galerien; und Adress-Geocoding.
Grenzen und typische Herausforderungen
- Keine offizielle API für beliebigen Review-Text im großen Stil. Yelp Fusions Free Tier deckelt bei 5.000 Calls/Tag und kürzt Review-Text auf kurze Auszüge — eine strukturierte API liefert vollständigen Review-Text und höhere Limits hinter einem Key.
- Menus, vollständige Foto-Galerien und Review-Highlights haben kein offizielles Developer-API-Äquivalent — sie sind nur so erreichbar, wie die App selbst sie erreicht.
- Reviews sind personenbezogene Daten. Autorennamen, Review-Text und Location-Strings sind nach DSGVO/CCPA personenbezogen — sammle öffentliche, faktische Felder mit einer Rechtsgrundlage und veröffentliche Rezensenten-Identitäten nicht erneut.
- Rating und Review-Zahlen ändern sich. Ziehe die Daten nach Zeitplan neu, statt für Reputations-Monitoring einem einmaligen Snapshot zu vertrauen.
Wo das eingesetzt wird
- Local-Business & Lead-Generierung — finde und qualifiziere Businesses nach Kategorie und Gegend. Siehe den Use Case lead generation.
- Review- & Reputations-Monitoring — verfolge das Rating und Sentiment eines Business oder Konkurrenten. Siehe den Use Case review & reputation monitoring.
- Restaurant- und Menu-Recherche — kombiniere Ratings mit Menu-Pricing über einen Markt hinweg.
Sources
Loslegen mit dem Sammeln
Probier es zuerst kostenlos aus: schick eine beliebige öffentliche URL durch den Free Web Scraper, oder prüfe mit dem Anti-Bot Checker, ob eine Site Bots blockiert — ohne Anmeldung.
Teste den Search-Endpoint im Playground, prüfe das Schema in den API docs und sieh dir das pricing an. Siehe auch how to scrape OpenTable für Restaurant-Reservierungen, how to scrape TripAdvisor für Reise- und Venue-Reviews, how to scrape Trustpilot reviews für die allgemeine Business-Review-Seite, mobile app APIs explained dafür, wie diese Daten tatsächlich fließen, und is web scraping legal.
Häufig gestellte Fragen
Hat Yelp eine offizielle API?
Ja — Yelp Fusion — aber der Free Tier deckelt bei 5.000 Calls/Tag, kürzt Review-Text auf kurze Auszüge (bis zu drei pro Business) und hat keine Menu-, Foto-Galerie- oder Review-Highlights-Endpoints. Eine strukturierte API liefert vollständigen Review-Text und diese zusätzlichen Felder hinter einem Key.
Kann ich Yelp scrapen, ohne geblockt zu werden?
Yelps Website fährt mehrschichtige Anti-Bot-Erkennung, die Datacenter-IPs innerhalb weniger Requests blockt, DIY braucht also Residential-Proxys und Browser-Rendering. Eine strukturierte API ruft direkt Yelps eigenes App-Backend auf und erledigt das hinter dem Key.
Wie adressiere ich ein Yelp-Business?
Businesses werden per Alias (z. B. pequods-pizza-chicago-3) oder einer codierten id adressiert, beide werden vom Search-Endpoint zurückgegeben. Nutze diesen Alias/diese id mit den Business-, Reviews-, Menu- und Photos-Endpoints.
Welche Yelp-Daten kann ich sammeln?
Öffentliche Felder: Search-Ergebnisse (rating, review count, price, categories, address, coordinates, photos); Business-Profil (hours, phone, website, health score, attributes); Reviews (rating, text, author, share URL); KI-extrahierte Review-Highlights; Menu-Items; Foto-Galerien; und Adress-Geocoding.
Sind Yelp-Reviews personenbezogene Daten?
Ja. Rezensentennamen, Review-Text und Location-Strings sind personenbezogene Daten nach DSGVO/CCPA — sammle nur öffentliche, faktische Felder mit einer Rechtsgrundlage und veröffentliche Rezensenten-Identitäten nicht erneut.
Wie oft kann ich aktualisieren?
Ratings und Review-Zahlen ändern sich, ziehe die Daten also nach Zeitplan innerhalb deines Plans und der Responsible-Use-Limits neu, statt kontinuierlich zu pollen.