冲顶大会、百万英雄等答题游戏助手(Python脚本)
2018-01-25 12:38
411 查看
改进版在此:http://blog.csdn.net/lsjweiyi/article/details/79203722
事先说明:这只是帮助你百度题目,并没有直接给你答案什么的,作用应该是能帮助你找到3 5 到题的答案而已,剩下一些题目还得靠自己,谈不上作弊。其次,这个脚本依赖网络比较多,毕竟要调用百度的api。当然还有浏览器的启动速度,毕竟答题就那么10秒。
然而,此时的这些答题游戏的奖金已经只有几块钱了,当初让我有想法的时候还是几十几百的,现在这样做,价值不高了。
思路:利用软件对手机截屏 ,并实时保存到电脑上,软件会自动创建一个文件夹(Pictures,原来是不存在的,当然这里你需要修改图片存储的路径),然后脚本检测到这个文件夹创建成功了,就表示截屏了,下来就进行识别。识别利用百度的在线ocr(不是卖广告,说实在的,尽管没开源,好歹给我这种业余爱好者一个解决方案,关键每天有免费次数,识别速度也快,还有更好的,请不吝赐教),然后把识别的文字百度并在浏览器打开。
关于百度的AI平台:ocr地址:http://ai.baidu.com/tech/ocr/general。具体怎么用自己看看文档吧(说的一般吧),脚本里需要一些key,我就提一下怎么获得这里的key,在上面的网址找到登录,然后找到图片里的位置:
然后创建应用,然后摸索吧,就会有那些key了。
关于手机连接电脑的软件我就随便找了个叫totalControl的,好不好我不知道,我就随便找的,反正目的就是能把手机实时截屏并上传,手机屏幕分辨率适用1920*1080,可以换别的软件,不过不要忘了根据实际修改相关的地方。
贴代码,Python版本2.7.13,有一些库需要安装,自己去安装吧,win32的库,地址:http://download.csdn.net/download/xgin1/9392606
事先说明:这只是帮助你百度题目,并没有直接给你答案什么的,作用应该是能帮助你找到3 5 到题的答案而已,剩下一些题目还得靠自己,谈不上作弊。其次,这个脚本依赖网络比较多,毕竟要调用百度的api。当然还有浏览器的启动速度,毕竟答题就那么10秒。
然而,此时的这些答题游戏的奖金已经只有几块钱了,当初让我有想法的时候还是几十几百的,现在这样做,价值不高了。
思路:利用软件对手机截屏 ,并实时保存到电脑上,软件会自动创建一个文件夹(Pictures,原来是不存在的,当然这里你需要修改图片存储的路径),然后脚本检测到这个文件夹创建成功了,就表示截屏了,下来就进行识别。识别利用百度的在线ocr(不是卖广告,说实在的,尽管没开源,好歹给我这种业余爱好者一个解决方案,关键每天有免费次数,识别速度也快,还有更好的,请不吝赐教),然后把识别的文字百度并在浏览器打开。
关于百度的AI平台:ocr地址:http://ai.baidu.com/tech/ocr/general。具体怎么用自己看看文档吧(说的一般吧),脚本里需要一些key,我就提一下怎么获得这里的key,在上面的网址找到登录,然后找到图片里的位置:
然后创建应用,然后摸索吧,就会有那些key了。
关于手机连接电脑的软件我就随便找了个叫totalControl的,好不好我不知道,我就随便找的,反正目的就是能把手机实时截屏并上传,手机屏幕分辨率适用1920*1080,可以换别的软件,不过不要忘了根据实际修改相关的地方。
贴代码,Python版本2.7.13,有一些库需要安装,自己去安装吧,win32的库,地址:http://download.csdn.net/download/xgin1/9392606
# _*_ coding:UTF-8 _*_ import win32con import ctypes import ctypes.wintypes import threading import time import os from PIL import Image from aip import AipOcr#百度的api,百度官网有教程 import base64 import shutil import string import urllib import urllib2 #热键功能,独立的一个线程 class Hotkey(threading.Thread): #创建一个Thread.threading的扩展类 def run(self): global EXIT #定义全局变量,这个可以在不同线程间共用 user32 = ctypes.windll.user32 #加载user32.dll try: if not user32.RegisterHotKey(None, ID, 0, HOTKEY): # 注册快捷键F10并判断是否成功,该热键用于结束程序,且最好这么结束,否则影响下一次注册热键。 print "Unable to register id", ID # 返回一个错误信息 #以下为检测热键是否被按下,并在最后释放快捷键 msg = ctypes.wintypes.MSG() while True: if user32.GetMessageA(ctypes.byref(msg), None, 0, 0) != 0: if msg.message == win32con.WM_HOTKEY: if msg.wParam == ID: EXIT=True return user32.TranslateMessage(ctypes.byref(msg)) user32.DispatchMessageA(ctypes.byref(msg)) finally: user32.UnregisterHotKey(None, ID)#必须得释放热键,否则下次就会注册失败,所以当程序异常退出,没有释放热键, #那么下次很可能就没办法注册成功了,这时可以换一个热键测试 class Ans(): def main(self): im_name=os.listdir(path)#获取图片名 self.cut()#对图片进行裁剪 f=open('im.jpg','rb')#二进制方式打开图文件 image=f.read()#这里好像必须命名为image,百度的api限定,有点不能理解,有待考察 #im=base64.b64encode(f.read()) #读取文件内容,转换为base64编码 #这里是每个百度云账号独立的一些ID,你需要自己去弄你自己的 APP_ID='你的ID' API_KEY='你的KEY' SECRET_KEY='你的SECRET_KEY' client = AipOcr(APP_ID, API_KEY, SECRET_KEY)#这个就是百度的api,可以获取一个相当于实例对象的东西,可以调用函数 information=client.basicGeneral(image)#ocr函数,打印出来是json格式的 STR=''#存储识别出来的文字 for i in range(0,information['words_result_num']):#根据格式得出来的循环 STR+=information['words_result'][i]['words'].encode('utf-8') #下面几行是对得到的字符串做一些处理,去掉一些符号,因为百度搜索限制38个字以内,个人觉得这里写的很丑,无奈没找到好的方法 STR=STR[1:len(STR)] STR=STR.translate(None,string.punctuation) STR=STR.replace('“','') STR=STR.replace('”','') STR=STR.replace('《','') STR=STR.replace('》','') self.find(STR)#调用百度搜索,并保存到本地,再用默认浏览器打开 print STR f.close()#关闭文件,不然后面删除不掉 shutil.rmtree(path)#删除之前获得的图片文件以及这个文件夹,以便下次判断是否已经截屏 #打开图片并裁剪 def cut(self): im_name=os.listdir(path)#获取图片名,因为截屏靠的外部软件,没办法修改截屏图片的名字 im=Image.open(path+'\\'+im_name[0]) box1=(93,380,970,1200)#这个是把选项也截进来 box2=(93,380,970,630)#这个是不把选项截下来 crop_im=im.crop(box1)#裁剪函数 im.close() crop_im.save('im.jpg')#保存本地,有不保存就直接用二进制打开的方式吗??求教 #调用百度搜索,并保存到本地,再用默认浏览器打开,参考百度的资料,具体哪篇忘记了,,如有问题请联系我。。 def find(self,STR): url = "http://www.baidu.com/s" search = [('w',STR)] getString = url + "?" + urllib.urlencode(search) req = urllib2.Request(getString) fd = urllib2.urlopen(req) baiduResponse=fd.read() fobj=open("baidu.html",'w') fobj.write(baiduResponse) os.startfile('baidu.html')#这个函数就很刚好的解决了大问题,可以用浏览器打开网页,不然就得手点了 fobj.close() if __name__ == '__main__': HOTKEY=win32con.VK_F6 #结束程序的快捷键F6,自行根据需要修改,一定要手动关闭程序,否则下次这个快捷键就用不了了 path="E:\Python\cddh\Pictures"#存储图片的路径,Pictures是软件自动创建的,所以修改路径时最后都要添加这个 EXIT = False #用来传递退出的参数 ID=106 #注册热键的唯一id,用来区分热键 ans=Ans()#创建实例 hotkey = Hotkey() hotkey.start()#启动线程 while(True): if os.path.exists(path):#检测是否截屏了,截屏了就会生成Pictures文件夹 if os.listdir(path):#这里再做检测是因为文件夹创建完不代表图片就创建完成了,不信试试 time.sleep(0.1)#删掉测试一下就知道为什么要加了。。反正我这里测试是要加的 ans.main() elif EXIT==True: #退出程序 break
相关文章推荐
- 【程序员的吃鸡大法】利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
- 利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
- 利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
- 【程序员的吃鸡大法】利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
- 冲顶,百万答题助手改进(python)
- 冲顶大会与百万英雄答题辅助
- 冲顶大会/芝士超人/花椒直播/头脑王者...答题助手升级版 v1.0
- 用python做百万英雄的答题辅助
- 西瓜视频 百万英雄 冲顶大会 程序员入口简单易懂教程!
- python实现百万英雄答题神器
- 教你用Java来玩答题(百万英雄/冲刺大会等)
- 百万英雄、芝士超人、百万赢家、冲顶大会作弊神器
- 来源于跳一跳python脚本的自动刷百万英雄,芝士超人复活码python脚本!!!!
- 教你用Java来玩答题(百万英雄/冲刺大会等)
- 【答题助手】只用2秒!搞定百万英雄 芝士超人 冲顶大会
- (作弊器)教你在百万英雄,冲顶大会,芝士超人,百万赢家等类似平台大赚一笔!!!
- 百万英雄类答题游戏的程序员打开方式
- 微信跳一跳游戏python脚本 微信跳一跳游戏集合
- 用Python给“冲顶大会”做外挂!王思聪们还敢撒币吗?
- 【脚本语言系列】关于Python游戏工具Pygame,你需要知道的事