教你用python撸走《百万英雄》《冲顶大会》奖金

最近这类答题app比较火,我的同事wangtonghe【https://link.juejin.im/?target=https%3A%2F%2Fgithub.com%2Fwangtonghet】为开源社区贡献了他的python代码。以下文章为他的思路,我只做了部分整理发布于掘金社区,分享给大家。

起因

看了 《程序员如何玩转《冲顶大会》?》【https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5a52f59f51882573520d3dc6 】大受启发,不过弱点很多,需要使用付费的OCR接口、再open到百度搜索答案,我们等待加载并且寻找答案的时候,已经错失了好的机会,刚好前几天研究了下微信跳一跳的辅助,正好可以用上。

初步思路

思路很明确,把答案截图pull过来,通过PYTHON OCR 库进行识别成文字后再放到百度搜索。匹配出现率最频繁的词语,记过几番尝试后,一些容易搜索的问题还是是可以搜索大部分答案的。

尝试

目前它是手动的,也就是说每次答案出现,手动执行脚本返回答案。同样由于个别题目原因(如某个词有多少笔画)虽然不是百分之百的成功率,但是一般都能进入决赛+一张复活卡基本妥妥‘吃鸡’,下面是吃鸡截图:

技术栈

实现语言python,用到的类库如下:

PIL

pytesseract(图片识别库)

BeautifulSoup(页面解析)

文字识别引擎需单独安装,参见 Python人工智能之图片识别,Python3一行代码实现图片文字识别 【https://link.juejin.im/?target=http%3A%2F%2Fblog.csdn.net%2Fqiushi_1990%2Farticle%2Fdetails%2F78041375】以及 mac上文字识别 Tesseract-OCR for mac【https://link.juejin.im/?target=http%3A%2F%2Fblog.csdn.net%2Fu010670689%2Farticle%2Fdetails%2F78374623】

主体代码如下:

文字识别需经训练,训练越多结果越准。

我把代码放到github上了,可围观 hq-answer-assist【https://link.juejin.im/?target=https%3A%2F%2Fgithub.com%2Fwangtonghe%2Fhq-answer-assist】

结语

要想实现更智能化,有个思路是不停的截图(1秒一次),一旦截到答题页(可以用答题页的色差来做),做文字识别后百度,将百度后的结果与选项做比较,哪个出现次数最多哪个就是最佳答案,这里可以加个判断,如果特别确定直接模拟点击事件选答案,不确定就手工。

有同学提到分析请求,也是个思路,后续可以研究。

欢迎探讨其他更好的实现方式。

Vendar_GM

作者:

转载请注明出处

https://juejin.im/post/5a579d63f265da3e4d72a028?utm_source=tuicool&utm_medium=referral

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180112A0HJ4F00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区