Wie man Wettquoten für Modelle und Arbing-Forschung scrapt
Quoten ändern sich sekündlich, und die sauberen Daten befinden sich nicht im HTML - sie sind im internen JSON, das das Frontend des Wettanbieters abruft. Hier erfahren Sie, wie Sie es abfragen, über Bücher hinweg normalisieren und dabei ungesperrt bleiben.
Wettanbieter-Quoten sind die am schnellsten wechselnden öffentlichen Daten, die die meisten Menschen jemals versuchen zu scrapen - Linien ändern sich sekündlich, und eine veraltete Zahl ist eine falsche Zahl. Die gute Nachricht für alle, die Modelle bauen oder Arbitrage erforschen: Man muss fast nie das HTML des Scoreboards parsen. Jedes moderne Wettanbieter-Frontend wird von einer internen JSON-API gespeist, und dort befinden sich die sauberen, strukturierten Quoten. Dieser Leitfaden behandelt, wie man Wettanbieter-Quoten scrapt von diesen APIs, sie schnell genug abfragt, um nützlich zu sein, über Bücher hinweg normalisiert und dabei ungesperrt bleibt.
Finden Sie die interne Quoten-API
Öffnen Sie die Event-Seite eines Wettanbieters mit den Entwicklerwerkzeugen Ihres Browsers auf dem Netzwerk-Tab, filtern Sie nach XHR/Fetch und beobachten Sie die Anfragen. Sie werden JSON-Endpunkte sehen, die Ereignisse, Märkte und Preise zurückgeben - dieselben Daten, die die Seite rendert, aber strukturiert. Community-Scraper, die über zehn nordamerikanische und australische Bücher abdecken (DraftKings, BetMGM, Caesars, BetRivers, PointsBet und andere), arbeiten alle auf diese Weise: Sie rufen die undokumentierte interne API auf, anstatt HTML zu parsen, weil das JSON stabil und vollständig ist. Lesen Sie es einmal, und eine Anfrage gibt Ihnen jeden Markt für ein Ereignis.
import requests
proxy = "http://USER:PASS@gate.quantumproxies.io:8000"
proxies = {"http": proxy, "https": proxy}
# endpoint + params come from watching the site's own network calls
API = "https://sportsbook.example.com/api/v2/events/{event_id}/markets"
def get_markets(event_id):
r = requests.get(API.format(event_id=event_id), proxies=proxies,
timeout=15, headers={"User-Agent": "Mozilla/5.0"})
return r.json() # events -> markets -> selections with prices

Schnell abfragen, aber nicht dumm
Für das Training von Modellen reicht ein Schnappschuss pro Minute aus; ein öffentlicher MLB-Scraper, der Moneylines alle 60 Sekunden über ein vierstündiges Fenster abfragt, ist eine sinnvolle Referenzfrequenz. Für die Live-Arbitrage-Forschung möchten Sie engere Intervalle, aber enges Abfragen von einer einzigen IP ist genau das, worauf Bücher achten. Die Antwort ist, die Last zu verteilen: Drehen Sie die Exit-IP in jedem Zyklus, sodass keine einzelne Adresse den Endpunkt überlastet. Normalisieren Sie alles auf Dezimalquoten und eine Zeile pro Auswahl, damit Bücher direkt vergleichbar sind:
import time
def american_to_decimal(a):
return round(1 + (a/100 if a > 0 else 100/abs(a)), 4)
def snapshot(event_id):
rows = []
for m in get_markets(event_id)["markets"]:
for sel in m["selections"]:
rows.append({
"ts": time.time(),
"market": m["name"],
"runner": sel["name"],
"decimal": american_to_decimal(sel["priceAmerican"]),
})
return rows
# poll on a steady interval; a rotating gateway gives a fresh IP each loop
while True:
save(snapshot("mlb-12345"))
time.sleep(60)
Ein rotierendes Residential Gateway macht dies zu einem Einzeiler: Zeigen Sie jede Anfrage auf einen Endpunkt und es gibt Ihnen automatisch eine neue IP, sodass ein Minutentakt nie wie eine einzige Maschine aussieht. Wenn ein Ablauf dieselbe IP für einen kurzen Burst benötigt - sagen wir, einen sitzungsgebundenen Markt - wechseln Sie zu einer Sticky-Session. Unser Leitfaden zu Sticky vs. Rotating Sessions erklärt, wann welche passt.
Rotierende Residential IPs für Quotendaten erhalten
Geo-Lizenzierung ist auch ein Datenproblem
Sportwetten sind nach Gerichtsbarkeit lizenziert, sodass die Quoten, die ein Buch zeigt - und ob es Ihnen überhaupt dient - davon abhängen, woher die Anfrage kommt. Eine DraftKings-Linie in New Jersey kann sich von demselben Markt in einem anderen Staat unterscheiden, und einige Bücher blockieren geografisch vollständig. Das ist nicht nur ein Compliance-Detail; es ändert die Daten. Wenn Sie Benchmarks oder Arbing über Regionen hinweg durchführen, fixieren Sie den Proxy-Exit auf den Markt, den Sie untersuchen, damit die Quoten die sind, die ein echter Wettender dort sehen würde. QuantumProxies deckt über 200 Länder und US-Bundesstaaten ab, sodass Sie regionsgenaue Linien ohne einen Stapel lokaler Maschinen abrufen können. Sehen Sie unseren standortbasierten Scraping-Leitfaden für dasselbe Geo-Prinzip, das auf Tarife angewendet wird.
Quoten speichern, damit Linienbewegungen abfragbar sind
Quotendaten sind nur nützlich, wenn Sie Fragen zu ihrer Geschichte stellen können, also speichern Sie sie von Anfang an als Zeitreihe. Fügen Sie jeden Schnappschuss hinzu, anstatt ihn zu überschreiben - eine Zeile pro Buch, Markt, Auswahl und Zeitstempel - damit Sie genau rekonstruieren können, was jedes Buch zu jedem Zeitpunkt angeboten hat. Diese nur anfügende Struktur ermöglicht es Ihnen, Linienbewegungen zu berechnen (wie sich ein Preis vor dem Anpfiff verändert hat), Steam Moves zu erkennen (viele Bücher ändern sich gleichzeitig) und ein Modell gegen die tatsächlich verfügbaren Quoten rückzutesten, nicht gegen die von heute. Überschreiben Sie nur den neuesten Preis und Sie werfen das wertvollste Signal im gesamten Datensatz weg.
Zwei praktische Hinweise. Erstens, stempeln Sie beim Erfassen, nicht beim Parsen, und zeichnen Sie den Exit-Standort neben jeder Zeile auf - Quoten sind regionsspezifisch, also ist "DraftKings, NJ, 14:32:05" ein anderer Datenpunkt als dasselbe Buch in einem anderen Staat. Zweitens, deduplizieren Sie auf dem natürlichen Schlüssel (Buch + Markt + Auswahl + Zeitstempel), damit eine erneut versuchte Anfrage nach einem Timeout keinen Preis doppelt zählt. Mit dieser Struktur wird der Vergleich von Büchern für marktübergreifende Vorteile zu einer einfachen Abfrage anstatt zu einem Durcheinander, und Ihre Arbing- oder Modellforschung läuft gegen eine saubere, prüfbare Historie. Es ist dieselbe Überwachungsdisziplin, die unser Leitfaden zu Restock- und Verfügbarkeitsüberwachung auf Inventar anwendet - nur dass sich hier die Werte sekündlich ändern.
Bot-Walls und wann man eine API verwenden sollte
Nicht jedes Buch ist gleichermaßen einfach. Einige sitzen hinter starker Bot-Erkennung und blockieren einen naiven Scraper schnell; andere sind einfach langsam und erzwingen eine Anfrage pro Marktgruppe. Wenn ein Ziel Quoten nur nach schwerem JavaScript rendert oder Sie mit Fingerprinting bekämpft, reicht eine rohe Anfrage nicht mehr aus. Eine Scraper API, die einen echten Browser-Fingerabdruck trägt, IPs rotiert und JS bei Bedarf rendert, ist in der Regel weniger Arbeit, als diesen Stack selbst zu pflegen - und sie gibt die geparste Nutzlast zurück. Eine rechtliche Anmerkung: Das Scrapen öffentlicher Quoten für Analysen ist üblich, aber die Bedingungen von Wettanbietern beschränken oft den automatisierten Zugriff und die Aktivität ist reguliert - dies ist eine Anleitung, keine Wett- oder Rechtsberatung, also prüfen Sie Ihre Gerichtsbarkeit.

Häufig gestellte Fragen
Wie scrapt man Wettquoten mit Python?
Beobachten Sie den Netzwerk-Tab des Wettanbieters, um die interne JSON-API zu finden, die sein Frontend aufruft, und fordern Sie diesen Endpunkt direkt über einen Proxy an und parsen Sie die strukturierte Antwort. Normalisieren Sie alles auf Dezimalquoten mit einer Zeile pro Auswahl, damit Bücher vergleichbar sind. Dies ist weit stabiler als das Parsen des gerenderten Scoreboard-HTMLs, das sich ständig ändert.
Wie oft sollte ich Quoten abfragen?
Für das Training von Modellen sind alle 30-60 Sekunden normalerweise ausreichend; eine häufige Referenz ist ein Moneyline-Schnappschuss jede Minute. Arbitrage-Forschung benötigt engere Intervalle, aber schnelles Abfragen von einer IP wird markiert - rotieren Sie die Exit-IP in jedem Zyklus durch einen Residential-Pool, sodass die Last auf viele Adressen verteilt wird, anstatt auf eine.
Warum unterscheiden sich Quoten, wenn ich von einem anderen Standort scrape?
Wettanbieter sind pro Gerichtsbarkeit lizenziert, sodass Linien und Verfügbarkeit je nach Staat oder Land variieren, und einige Bücher blockieren geografisch vollständig. Der Exit-Standort der Anfrage entscheidet, welchen Markt Sie sehen. Um regionsgenaue Quoten zu sammeln, fixieren Sie Ihren Proxy-Exit auf die Gerichtsbarkeit, die Sie untersuchen, anstatt anzunehmen, dass ein globaler Preis existiert.
Ist das Scrapen von Wettanbieter-Quoten legal?
Das Sammeln öffentlich angezeigter Quoten für Analysen wird weit verbreitet durchgeführt, aber die Nutzungsbedingungen von Wettanbietern verbieten oft den automatisierten Zugriff, und Sportwetten sind stark nach Region reguliert. Behandeln Sie die Daten als öffentliche Forschungsgrundlage, respektieren Sie die Nutzungsbedingungen und die robots.txt jeder Seite und prüfen Sie die Regeln, wo Sie tätig sind. Dies ist allgemeine Anleitung, keine Rechts- oder Wettberatung.
Gutes Scraping von Quoten läuft auf vier Schritte hinaus: Lesen Sie das interne JSON, fragen Sie in einem stetigen Rhythmus ab, rotieren Sie Residential IPs, damit keine Adresse auffällt, und passen Sie das Exit-Geo an den Markt an. Wenn Sie diese richtig machen, haben Sie einen sauberen, regionsgenauen Quotenfeed - das Rohmaterial für jedes Modell oder jede Edge-Forschung.