我很想知道这个过程是如何工作的。这些网站(http://www.sharkscope.com和http://www.pokertableratings.com)每天从 PokerStars 和 Full Tilt 等安全扑克网络挖掘数千手牌。
他们是否拥有运行应用程序的服务器场,这些应用程序打开数百个表(窗口),然后以某种方式蜘蛛/数据挖掘正在玩的手?
这是如何工作的,编程明智?
我很想知道这个过程是如何工作的。这些网站(http://www.sharkscope.com和http://www.pokertableratings.com)每天从 PokerStars 和 Full Tilt 等安全扑克网络挖掘数千手牌。
他们是否拥有运行应用程序的服务器场,这些应用程序打开数百个表(窗口),然后以某种方式蜘蛛/数据挖掘正在玩的手?
这是如何工作的,编程明智?
有几个选项。我一直在研究它,因为我想在我正在开发的网络应用程序中实现其中的一些功能。例如,我将使用 PokerStars,因为到目前为止,它们的安全性是所有在线扑克网站中最好的。
首先,要意识到开发人员无法从 PokerStars 应用程序本身获取实时信息。您无法访问 API。但是,您可以执行以下操作:
屏幕抓取/OCR
PokerStars 尽最大努力破坏他们应用程序的屏幕/文本抓取(通过做一些简单的事情,例如像素级颜色波动),但如果有足够的动力,您可以轻松解决这个问题。Google AutoHotkey 与 ImageSearch 相结合。
API 访问和 XML 源
PokerStars 不提供对其 API 的公开访问。但它确实为预先批准的开发人员提供了 XML 提要。此 XML 提要提供:
PokerStars 网站摘要 - 显示玩家、牌桌和锦标赛人数
PokerStars Current Tournament 数据 - 包含即将到来的和正在进行的锦标赛信息的文件。数据在两个文件中提供:
PokerStars 锦标赛结果 - 提供有关已完成锦标赛的信息。数据在两个文件中提供:
PokerStars 锦标赛排行榜 - 提供有关使用 PokerStars 锦标赛排名系统排名的顶级 PokerStars 玩家的信息
PokerStars Tournament Leaders Board BOP - 提供有关使用 PokerStars Battle Of Planets 排名系统排名的 PokerStars 顶级玩家的信息
扑克之星团队 – 提供扑克之星团队玩家及其在线活动的信息
这些站点极不可能访问 XML 提要(或提供他们需要的所有功能的改进版提要),因为 PokerStars 与大多数这些站点的关系并不完全好。
这留下了两个选择。为所述数据抓取网络连接,我认为这是不可能的(我没有这方面的经验,所以我不确定;我听说它是高度加密的,不容易修补,但我不确定) 以及上面提到的屏幕抓取/OCR。
选项#2 很容易实现,并且通过一些工作可以避免检测。据我所知,这是他们对 PokerStars 进行如此大规模数据挖掘的唯一方法(我没有查看其他网站,但我听说除了 PokerStars/Full Tilt 之外的任何东西的安全性都非常可怕)。
[编辑] 重读您的问题并意识到我没有明确回答。
是的,他们可能有大量服务器正在运行,监视所有当前正在运行的牌桌、锦标赛等。意识到他们正在做的事情有相当多的钱。
例如,这可能是他们的做法(推测):
所述机器人应用程序监视表格并数据挖掘所有“发布”到聊天日志的信息。他们通过已经有一个图像表来做到这一点,例如,对应于字母表中的所有字母(因为 PokerStars 不会将他们的文本发布为......文本。他们软件中的所有文本实际上都是一个图像)。因此,机器人会撕下聊天日志的图像,将其与商店进行匹配,将数据转换为他们可以使用的格式,然后将其放入数据库中。完毕。
[编辑] 不,扑克网站本身不会将数据出售给他们。如果它出来了,这将是一场公关噩梦,它会的。而且它不会考虑这些网站的功能,这似乎是即时的。OPR、Sharkscope 等。毫无疑问,正在运行的应用程序正在从扑克软件中实时提取数据,可能使用我列出的方法。
也许我可以帮忙。我玩扑克,运行 HUD,查看统计数据,并且是一名软件开发人员。
我看过一些关于此的帖子,表明它是由 OCR 软件抓取屏幕完成的。嗯,这真的很困难,而且处理器很饿,所以除非没有其他选择,否则程序员不会选择这样做。另外,由于您可以打开多个窗口,扑克窗口可能会被屏幕上的其他东西隐藏或部分遮挡,因此您不能保证能够捕获屏幕。
简而言之,他们读取扑克软件输出的日志文件。
当您安装像 Sharkscope 或 Jivaro 等 HUD 时,它们会在您的 PC 上运行客户端软件。它会读取日志文件并在您玩的每一手牌时更新自己的服务器。
大多数扑克软件都是类似的,但让我们从 Pokerstars 开始,因为那是我玩的地方。扑克软件为您/它所做的每一个动作输出到本地日志文件。它会显示您的牌、您看到的任何对手牌以及您所做的事情。例如。您按下了哪个按钮,您/他们下注了多少等。它几乎实时发布这些更新并为日志文件加上时间戳。
您可以查看自己的文件以查看实际情况。在 PC 上执行此操作(不确定您在 Mac 上执行的操作,但类似) 1. 加载文件资源管理器 2. 从菜单中选择查看 3. 选择隐藏项目以便您可以看到隐藏的数据文件 4. 转到 C :\Users\Dave\AppData\Local\PokerStars.UK(您可能不叫 DAVE...) 5. 在 NOTEPAD 中打开 PokerStars.log.0 文件 6. 在记事本中,搜索 updateMyCard 7. 它会显示您的数字 3c 表示 3 的梅花 14d 表示方块 A
您只能在牌桌上看到对手的牌时才能看到他们。
以下是日志文件中的一些示例行。
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]
干杯,希望这有助于戴夫
我考虑过这一点,并有两个理论:
“嗅探器”站点打开了每个表,并且:
或者,他们可能已经开发/修改了客户端来为他们记录所有内容,但我认为上述解决方案之一可能更简单。
好吧,他们有两个选择:
猜猜他们更可能选择哪一个;至少如果该站点已经存在了一段时间而没有时不时地关闭。
我不确定它是如何工作的,但我有一个应用程序 ID 和一个密钥——您可以作为金牌或银牌订阅者获得 – 注册一个月并向他们发送电子邮件,您将获得访问权限和 API 文档。