我非常想知道这个过程是如何运作的。这些网站(http://www.sharkscope.comhttp://www.pokertable ratings.com)每天从 PokerStars 和 Full Tilt 等安全扑克网络中挖掘数千手牌的数据。

他们是否有一个运行应用程序的服务器场,这些应用程序打开数百张桌子(窗口),然后以某种方式对正在玩的手牌进行蜘蛛/数据挖掘?

从编程角度来说,这是如何工作的?

有帮助吗?

解决方案

有几种选择。自从我想在我正在开发的网络应用程序中实现其中一些功能以来,我一直在研究它。例如,我将使用 PokerStars,因为迄今为止,它们是所有在线扑克网站中安全性最好的。

首先,要认识到开发人员无法从 PokerStars 应用程序本身获取实时信息。您无法访问 API。不过,您可以执行以下操作:

屏幕抓取/OCR

PokerStars 尽最大努力破坏其应用程序的屏幕/文本抓取(通过做简单的事情,例如像素级颜色波动),但只要有足够的动力,您就可以轻松解决此问题。Google AutoHotkey 与 ImageSearch 相结合。

API 访问和 XML 源

PokerStars 不提供对其 API 的公开访问。但它确实为预先批准的开发人员提供了 XML 提要。此 XML 提要提供:

  • PokerStars 网站摘要 - 显示玩家、牌桌和锦标赛计数

  • PokerStars 当前锦标赛数据 - 包含即将举行和正在进行的锦标赛信息的文件。数据在两个文件中提供:

    • PokerStars 静态锦标赛数据 - 提供不经常更改的锦标赛信息,以及
    • PokerStars 动态锦标赛数据 - 提供经常变化的锦标赛信息
  • PokerStars 锦标赛结果 - 提供有关已完成锦标赛的信息。数据在两个文件中提供:

    • PokerStars 锦标赛结果 – 提供有关已完成锦标赛的基本信息,以及
    • PokerStars 锦标赛扩展结果 – 提供有关已完成锦标赛的扩展信息。
  • PokerStars 锦标赛排行榜 - 提供有关使用 PokerStars 锦标赛排名系统排名的顶级 PokerStars 玩家的信息

  • PokerStars 锦标赛排行榜 BOP - 提供有关使用 PokerStars Battle Of Planets 排名系统排名的顶级 PokerStars 玩家的信息

  • 扑克之星队 – 提供有关扑克之星队玩家及其在线活动的信息

这些网站不太可能访问 XML 提要(或改进的可提供其所需所有功能的提要),因为 PokerStars 与大多数这些网站的关系并不好。

这留下了两个选择。抓取所述数据的网络连接,我认为这是不可能的(我没有这方面的经验,所以我不确定;我听说它是​​高度加密的并且不容易修改,但我不确定)以及上面提到的屏幕抓取/OCR。

选项 #2 很容易实现,并且通过一些工作可以避免检测。据我所知,这是他们对 PokerStars 进行如此大规模数据挖掘的唯一方法(我没有研究过其他网站,但我听说除了 PokerStars/Full Tilt 之外的任何网站的安全性都非常可怕) )。

[编辑] 重读你的问题,意识到我没有明确回答它。

是的,他们可能拥有大量正在运行的服务器来监视所有当前正在运行的牌桌、锦标赛等。意识到他们所做的事情有相当多的钱。

例如,他们可能是这样做的(推测):

所述机器人应用程序监视表格并数据挖掘“发布”到聊天日志的所有信息。他们通过已经拥有一个与字母表中的所有字母相对应的图像表来做到这一点(因为扑克之星不会将其文本发布为...文本。他们软件中的所有文本实际上都是 一个图像)。因此,机器人会抓取聊天日志的图像,将其与商店进行匹配,将数据转换为他们可以使用的格式,并将其放入数据库中。完毕。

[编辑] 不,数据不是由扑克网站本身出售给他们的。如果这件事传出去的话,这将是一场公关噩梦,事实确实如此。而且它不会考虑这些网站的功能,这些功能似乎是即时的。OPR、Sharkscope 等毫无疑问,正在运行的应用程序可能会使用我列出的方法从扑克软件中实时获取数据。

其他提示

也许我可以提供帮助。 我玩扑克牌,运行HUD,看看统计数据,并是一名软件开发人员。

我已经看到了这个暗示它是由OCR软件抓取屏幕上做了一些文章。嗯,这是真的很难和处理器饿了,所以程序员也不会选择这样做,除非有没有其他选择。 此外,因为你可以打开多个窗口,扑克窗口可以在屏幕上隐藏或部分地被其他东西所遮蔽,所以你不能保证能够捕获屏幕。

总之,他们读取由所述扑克牌输出软件的日志文件。

当您安装HUD像Sharkscope或Jivaro等,比他们在PC上运行的客户端软件。它读取日志文件,并用每一次你玩手工更新自己的服务器。

大多数扑克软件是类似的,但让我们从扑克之星开始,因为多数民众赞成在我玩。扑克软件输出为每一个动作你本地日志文件/它使。它显示了你的卡,任何对手卡,你看,再加上你做什么。例如。你按下哪个按钮,你是多么/他们赌等,帖子以近乎实时的这些更新和时间戳的日志文件。

您可以查看自己的文件来看到这个动作。 在PC上做到这一点(不知道你在Mac上的东西,但将是相似的) 1.加载文件资源管理器 2.从菜单中选择查看 3.选择隐藏的项目,这样就可以看到隐藏的数据文件 4.转到C:\用户\戴夫\应用程序数据\本地\ PokerStars.UK(你可能不叫DAVE ...) 5.用记事本打开该文件PokerStars.log.0 6.在记事本,搜索updateMyCard 7.将数值显示你的卡    3C的俱乐部3    14D为钻石的埃斯

您只能看到你的对手卡在那里你看到他们在餐桌上。

下面是从日志文件的几个示例行。

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]

欢呼声,希望这有助于 戴夫

我思考过这个问题,并有两种理论:

“嗅探器”站点打开每个表,并且:

  1. 能够从网络流中拉取手部数据。(或者:)
  2. 正在从 GUI 获取手部数据(屏幕抓取、通过 GUI API 拉出内容)。

或者,他们可能已经开发/修改了客户端来为他们记录所有内容,但我认为上述解决方案之一可能更简单。

好吧,他们有两个选择:

  • 他们未经同意就抓取/抓取数据。然后他们 随时有被关闭的风险. 。扑克网站可以轻松检测到这种规模的监控并予以阻止。乃至 冒诉讼风险 因违反 服务条款, ,这可能禁止使用机器人。
  • 他们为直接获取数据付费。这节省了大量带宽(例如不必加载完整页面、提取、通过 html 更改进行更新等),并使他们的业务风险大大降低(法律和技术上)。

猜猜他们更有可能选择哪一个;至少如果该网站已经存在了一段时间并且没有时不时地被关闭的话。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top