2010-10-25 8 views
12

Sono molto curioso di sapere come funziona questo processo. Questi siti (http://www.sharkscope.com e http://www.pokertableratings.com) estraggono migliaia di mani al giorno da reti di poker sicure, come PokerStars e Full Tilt.In che modo esattamente i dati di Sharkscope o PTR estraggono tutte quelle mani?

Hanno una farm di server che eseguono applicazioni che aprono centinaia di tabelle (Windows) e quindi in qualche modo spider/datamine le mani che vengono riprodotte?

Come funziona, la programmazione è saggia?

+1

Sto indovinando che i dati viene dato/venduto a loro. – drudge

+0

@jnpcl questo non è vero, ho paura.Alcuni di questi siti hanno accordi, ma per quanto ne so, tutti (in origine) acquisiscono i dati senza consenso/consapevolezza dai siti in questione. –

risposta

21

Ci sono alcune opzioni. L'ho cercato perché volevo implementare alcune di queste funzionalità in un'app Web su cui sto lavorando. Ad esempio, userò PokerStars, poiché hanno di gran lunga la migliore sicurezza di qualsiasi sito di poker online.

Prima di tutto, rendersi conto che non c'è alcun modo per uno sviluppatore di estrarre informazioni in tempo reale dall'applicazione stessa di PokerStars. Non puoi accedere all'API. È possibile, però, effettuare le seguenti operazioni:

screen scraping/OCR

PokerStars fa del suo meglio per sabotare screen scraping/testo della loro applicazione (facendo le cose semplici come fluttuazioni di colore a livello di pixel), ma con abbastanza motivazione puoi facilmente aggirare questo. Google AutoHotkey combinato con ImageSearch.

Accesso API e XML feed

PokerStars non offre l'accesso del pubblico alla sua API. Ma offre un feed XML agli sviluppatori che sono pre-approvati. Questo feed XML offre: Riassunto

  • PokerStars sito - mostra che il giocatore, tavolo e tornei conta

  • dati PokerStars torneo in corso - i file con le informazioni sui prossimi tornei e attivi. I dati sono forniti in due file:

    • PokerStars Static Torneo dati - fornisce le informazioni del torneo che non cambia di frequente, e
    • PokerStars dinamica Torneo dati - fornisce cambiare frequentemente le informazioni del torneo
  • PokerStars Risultati del torneo: fornisce informazioni sui tornei completati. I dati sono forniti in due file:

    • PokerStars Tournament Risultati - fornisce informazioni di base sui tornei completati, e
    • PokerStars Tournament Risultati Expanded - fornisce ampliato informazioni sui tornei completati.
  • PokerStars Tournament Leader Board - fornisce informazioni sui migliori giocatori di PokerStars classificato con PokerStars Graduatoria Torneo sistema

  • Leader PokerStars Tournament Consiglio BOP - fornisce informazioni sulle migliori giocatori di PokerStars classificato con PokerStars Battaglia dei Pianeti Classifica Sistema

  • team PokerStars - fornisce informazioni sui giocatori del team PokerStars e la loro attività online

È altamente improbabile che questi siti abbiano accesso al feed XML (o uno migliorato che fornisca tutte le funzionalità di cui hanno bisogno) poiché PokerStars non è esattamente in buoni rapporti con la maggior parte di questi siti.

Questo lascia due opzioni. Scraping la connessione di rete per detti dati, che a mio avviso è impossibile (non ho esperienza con questo, quindi non ne sono sicuro, ho sentito che è altamente criptato e non facile da maneggiare, ma non sono sicuro) e, menzionato sopra, screen scraping/OCR.

L'opzione n. 2 è abbastanza semplice da implementare e, con un po 'di lavoro, può evitare il rilevamento. Da quello che sono stato in grado di raccogliere, questo è l'unico modo in cui potrebbero fare un così grande data mining di PokerStars (non ho guardato in altri siti ma ho sentito sicurezza su qualsiasi cosa oltre a PokerStars/Full Tilt è abbastanza orrendo).

[modifica] Rileggi la tua domanda e ti rendi conto che non ho risposto in modo inequivocabile.

Sì, probabilmente hanno una quantità enorme di server in esecuzione che guardano tutti i tavoli, i tornei, ecc. Attualmente in corso. Renditi conto che c'è una discreta quantità di denaro in quello che stanno facendo.

Questo, per esempio, potrebbe essere come lo fanno (speculazione):

applicazioni bot di Said guardare le tabelle ei miei dati tutte le informazioni che ottiene "postato" al registro della chat. Lo fanno già avendo una tabella di immagini che corrisponde, per esempio, a tutte le lettere dell'alfabeto (dal momento che PokerStars non pubblica il loro testo come ... testo. Tutto il testo nel loro software è in realtà un'immagine). Quindi, il bot rimuove un'immagine del log della chat, la confronta con lo store, converte i dati in un formato con cui possono lavorare e li getta in un database. Fatto.

[modifica] No, i dati non vengono venduti dai siti di poker stessi. Questo sarebbe un incubo per le pubbliche relazioni se mai fosse uscito, quale sarebbe stato. E non rappresenterebbe la funzionalità di questi siti, che sembra essere istantanea. OPR, Sharkscope, ecc. Ci sono, senza dubbio, applicazioni in esecuzione che stanno strappando i dati in tempo reale dal software del poker, probabilmente usando i metodi che ho elencato.

+0

ora, QUESTA è una risposta alla gente! Sembra che tu sappia davvero di cosa stai parlando. Grazie mille ! – kissgyorgy

+0

la domanda non è mia, la risposta è già accettata. Hai la taglia, molto più preziosa :) – kissgyorgy

+0

Ah, capisco. Ancora imparando, nuovo in SO. =) –

0

Mi sono chiesto anche questo. Un altro sito http://pokeroptimizer.com aggiorna le mie statistiche quasi subito dopo aver finito una partita, quindi devono stare a guardare come ogni tavolo

0

Ho sempre pensato che avessero aperto ogni tavolo. Ma non ne ho idea.

1

ho pensato a questo, e hanno due teorie:

I siti "sniffer" hanno ogni tavolo aperto, E:

  1. sono in grado di estrarre i dati a mano dal flusso di rete. (o :)
  2. Stanno ottenendo i dati della mano dalla GUI (raschiando schermo, estraendo materiale tramite l'API della GUI).

In alternativa, possono avere client sviluppati/modificati per registrare tutto per loro, ma penso che una delle soluzioni di cui sopra sia probabilmente più semplice.

1

bene, hanno due scelte:

  • hanno spider/afferrare i dati senza consenso. Quindi il loro rischia di essere spento in qualsiasi momento. Il sito di poker può facilmente rilevare tale monitoraggio su questa scala e bloccarlo. E anche rischia una causa legale per violazione dei termini di servizio , che probabilmente non consente l'utilizzo di robot.
  • pagano per ottenere direttamente i dati. Ciò consente di risparmiare molta banda (ad esempio non dover caricare pagine complete, estrazione, aggiornamenti con modifiche HTML ecc.) E rende la loro attività molto meno rischiosa (legalmente e tecnicamente).

Indovina quale preferibilmente sceglievano; almeno se il sito è stato in giro per qualche tempo senza essere spento ogni tanto.

+1

Sospetto che tu non abbia nemmeno la minima idea di cosa sia PTR o Sharkscope ... Perché preoccuparsi di rispondere allora? Ho bisogno di fatti che non indovino. – kissgyorgy

4

forse posso aiutare. Gioco a poker, gestisco un HUD, guardo le statistiche e sono uno sviluppatore di software.

Ho visto alcuni post su questo suggerendo che è fatto da software OCR afferrando lo schermo. Bene, è molto difficile e il processore ha fame, quindi un programmatore non sceglierebbe di farlo se non ci fossero altre opzioni. Inoltre, poiché è possibile aprire più finestre, la finestra del poker può essere nascosta o parzialmente oscurata da altre cose sullo schermo, quindi non si può garantire di essere in grado di catturare lo schermo.

In breve, leggono i file di registro che vengono generati dal software del poker.

Quando si installa l'HUD come Sharkscope o Jivaro ecc., Si esegue il software client sul PC. Legge i file di registro e aggiorna i propri server con ogni mano che giochi.

La maggior parte dei software di poker è simile, ma consente di iniziare con Pokerstars, come quello in cui gioco. Il software di Poker emette i file di log locali per ogni azione che fai. Mostra le tue carte, le carte degli avversari che vedi e ciò che fai. per esempio. quale tasto hai premuto, quanto scommetti ecc. Pubblica questi aggiornamenti in tempo quasi reale e timestamp il file di log.

È possibile guardare i propri file per vederlo in azione. Su un PC fare ciò (non si sa cosa si fa su un Mac, ma sarà simile) 1. Caricare Esplora file 2. Selezionare VISUALIZZA dal menu 3. Selezionare OGGETTI NASCOSTI in modo da poter vedere i file di dati nascosti 4. Vai a C: \ Users \ Dave \ AppData \ Local \ PokerStars.UK (potresti non essere chiamato DAVE ...) 5. Apri il file PokerStars.log.0 in NOTEPAD 6. Nel Blocco note, CERCA per updateMyCard 7. si mostrerà la vostra carta numericamente 3c per 3 di club 14d per Ace of Diamonds

potete vedere le tue carte avversari solo quando li hai visti al tavolo.

Ecco alcune righe di esempio dal file di registro.

OnTableData() round -2 
:::TableViewImpl::updateMyCard() 8s (0) [2A0498] 
:::TableViewImpl::updateMyCard() 13h (1) [2A0498] 
:::TableViewImpl::updatePlayerCard() 7s (0) [2A0498] 
:::TableViewImpl::updatePlayerCard() 14s (1) [2A0498] 
[2015/12/13 12:19:34] 

applausi, spero che questo aiuta Dave

+0

Gli utenti hanno un ID univoco o qualcosa di simile e come posso ottenere le loro azioni vedo solo il mio. – Arqu

+0

Questa è la risposta corretta. Dopo che la mano è stata giocata, PokerStars scrive la mano in un file di registro. La chiave qui è che lo fanno solo DOPO che la mano è giocata, il che significa che non puoi analizzarlo in tempo reale. Per farlo in tempo reale dovrai schermare raschiare. –

Problemi correlati