2010-10-25 306 views
12

我很好奇,知道這個過程如何工作。這些網站(http://www.sharkscope.comhttp://www.pokertableratings.com)每天從安全的撲克網絡(如PokerStars和Full Tilt)挖掘數千手牌。sharkscope或PTR數據究竟如何挖掘所有這些手?

他們是否有一個運行應用程序的服務器場,這些應用程序可以打開數百個表格(窗口),然後以某種方式在正在播放的手中使用spider/datamine?

這是如何工作,編程明智嗎?

+1

我猜測數據給出/出售給他們。 – drudge 2010-10-27 21:01:22

+0

@ jnpcl這不是真的我很害怕。其中一些網站有協議,但據我所知,他們(最初)都是在未經有關網站同意/意識的情況下獲取數據。 – 2011-01-05 11:43:10

回答

21

有幾個選項。我一直在研究它,因爲我想在我正在開發的一個Web應用程序中實現這些功能。我會使用PokerStars撲克之星,因爲他們迄今爲止擁有任何在線撲克網站的最佳安全性。

首先,認識到開發人員無法從PokerStars應用程序本身獲取實時信息。您無法訪問該API。你可以,但是,請執行下列操作:

屏幕抓取/ OCR

撲克之星會盡力破壞他們的應用程序的屏幕/文本刮(做簡單的事情,像像素級色調變動),但有足夠的動機你可以輕鬆解決這個問題。 Google AutoHotkey與ImageSearch結合使用。

API接入和提供XML

撲克之星不提供其API公共訪問。但它確實爲預先批准的開發人員提供了XML提要。該XML飼料提供:

  • 撲克站點摘要 - 顯示播放器,表和比賽統計

  • 撲克之星當前競賽數據 - 與即將推出的和積極的比賽信息的文件。該數據在兩個文件中規定:

    • 撲克靜態錦標賽數據 - 提供了一個不經常改變比賽的信息,並
    • 撲克動態錦標賽數據 - 提供經常變化的大賽信息
  • 撲克之星錦標賽結果 - 提供關於完成的錦標賽的信息。該數據在兩個文件中規定:

    • 撲克比賽結果 - 提供有關完成比賽的基本信息,以及
    • 撲克錦標賽展開結果 - 提供了擴展的關於完成比賽的信息。
  • 撲克錦標賽領導人板 - 提供頂級撲克玩家排名使用撲克聯賽排名系統

    信息
  • 撲克錦標賽領導人板防噴器 - 提供頂級撲克玩家信息使用撲克之星戰行星排名系統

    排名
  • 撲克之星隊 - 提供有關撲克之星隊的球員和他們的在線活動的信息

由於PokerStars與大多數這些網站的條款並不完全一致,所以這些網站不太可能訪問XML提要(或改進後的提供所需功能的改進提供商)。

這留下了兩個選項。刮掉所有數據的網絡連接,我認爲這是不可能的(我沒有這方面的經驗,所以我不確定;我聽說它是​​高度加密的,不容易修補,但我不確定)和上面提到的屏幕抓取/ OCR。

選項#2很容易實現,並且在一些工作中可以避免檢測。從我能夠收集的信息來看,這是他們可以對PokerStars進行如此大規模數據挖掘的唯一方式(我沒有看過其他網站,但是除了PokerStars/Full Tilt之外,我還聽說過任何安全問題都非常可怕)。

重讀您的問題,並意識到我沒有明確地回答它。

是的,他們可能有大量的服務器在運行,觀看所有正在運行的桌面,錦標賽等。意識到他們正在做的事情中有相當數量的金錢。

此,例如,可能是他們是如何做到這一點(炒):

說機器人的應用看錶和數據挖掘是被「貼」到了聊天記錄的所有信息。他們通過已經有一張圖像表來對應例如字母表中的所有字母(因爲PokerStars不會將他們的文本發佈爲...文本,其軟件中的所有文本實際上是和圖像)。所以,機器人然後撕開聊天記錄的圖像,將其與商店相匹配,將數據轉換爲他們可以使用的格式,並將其引發到數據庫中。完成。

不,數據不會由撲克網站自己出售給他們。這將是一場公關噩夢,如果它出來了,它會。它不會考慮這些網站的功能,這似乎是瞬間的。 OPR,Sharkscope等。毫無疑問,運行的應用程序正在從撲克軟件實時抓取數據,可能使用我列出的方法。

+0

現在,這是一個答案人!看起來你真的知道你在說什麼。非常感謝你 ! – kissgyorgy 2012-08-12 13:18:53

+0

問題不是我的,答案已經被接受。你得到了賞金,方式更有價值:) – kissgyorgy 2012-08-12 13:37:20

+0

啊,我明白了。仍然在學習,對於新手來說。 =) – 2012-08-12 13:38:15

0

我也一直在想這個。另一個網站http://pokeroptimizer.com幾乎在我完成比賽後立即更新我的數據,因此他們必須像每個表一樣觀看

0

我一直以爲他們已經打開了每張桌子。但我真的不知道。

1

我想過這一點,有兩種理論:

的「嗅探器」的網站有每個表打開,:

  1. 能夠從網絡流牽了手的數據。 (或:)
  2. 正在從GUI獲取手形數據(屏幕抓取,通過GUI API拉出東西)。

或者,他們可能已經開發/修改客戶端登錄的一切對他們來說,但我認爲上述解決方案之一可能是簡單的。

1

那麼,他們有兩個選擇:

  • 他們蜘蛛/抓取數據,而不同意。然後他們風險隨時關閉。撲克網站可以很容易地檢測到這種規模的監控並阻止它。並且即使因爲違反了服務條款而可能面臨訴訟,這可能會禁止使用機器人。
  • 他們支付直接獲取數據。這節省了大量的帶寬(例如,不需要加載整個頁面,提取,帶有html更改的更新等),並使他們的業務在法律和技術上風險小得多。

猜猜他們更可能選擇哪一個;至少如果該網站已經存在了一段時間而沒有被關閉的時候。

+1

我懷疑你甚至不知道PTR或Sharkscope是什麼......爲什麼麻煩回答呢?我需要事實不要猜測。 – kissgyorgy 2012-08-07 21:46:41

4

也許我可以幫忙。 我玩撲克,運行平視顯示器,查看統計數據,並且是一名軟件開發人員。

我已經看過幾篇文章,暗示它是通過OCR軟件抓取屏幕完成的。嗯,這是真的很難和處理器餓了,所以程序員也不會選擇這樣做,除非有沒有其他選擇。 此外,因爲你可以打開多個窗口,撲克窗口可以隱藏或通過屏幕上的其他東西部分模糊,所以你不能保證能夠捕獲屏幕。

總之,他們讀取撲克軟件輸出的日誌文件。

當你像Sharkscope或Jivaro等安裝你的HUD時,他們會在你的PC上運行客戶端軟件。它會讀取日誌文件並用您玩的每一隻手更新自己的服務器。

大多數撲克軟件是類似的,但讓我們從撲克之星開始,因爲多數民衆贊成在我玩。撲克軟件將輸出到本地日誌文件,以進行您所做的每項操作。它會顯示你的牌,你看到的任何對手牌以及你所做的。例如。您按下了哪個按鈕,您/他們下注了多少等等。它幾乎實時地發佈這些更新併爲日誌文件添加時間戳。

你可以看看你自己的文件,看看這個在行動。 在PC上做到這一點(不知道你在Mac上做什麼,而是將類似) 1.加載文件資源管理器 2.選擇視圖從菜單中 3.選擇隱藏的項目,這樣就可以看到隱藏的數據文件 4.轉到C:\用戶\戴夫\應用程序數據\本地\ PokerStars.UK(你可能不叫DAVE ...) 5.用記事本打開 6. PokerStars.log.0文件在記事本,搜索updateMyCard 7.它會顯示你的卡數值 3C爲俱樂部 14D的3皇牌鑽石

,你只能看到你的對手卡在那裏你看到他們在餐桌上。

下面是從日誌文件中的幾例線。

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] 

歡呼聲,希望這有助於 戴夫

+0

用戶是否有任何獨特的ID或類似的東西,我如何得到他們的行動,我只看到我自己的行爲。 – Arqu 2015-12-16 18:43:16

+0

這是正確的答案。撲克之後玩牌PokerStars將手牌寫入日誌文件。這裏的關鍵是他們只能在玩完手之後進行,這意味着你無法實時分析它。要實時做到這一點,你必須屏幕刮擦。 – 2018-01-08 11:45:36