最近百万英雄之类的答题软件广受大家的喜爱,不过对于我这菜鸟基本没有拿过奖。
但是作为一名码农怎么能忍,于是研究出了即将要与大家分享的答题神器。

流程:

首先,带着大家捋一遍流程:

first:将手机屏幕投影到电脑上,或者开启模拟器,在电脑上,将问题和答案截图
second:进行图像识别,将问题和答案转换成文字
third:百度搜索问题和答案并爬取数据
fourth:进行数据分析,给出答案

投影/模拟器

本人使用的iphone和Mac进行投影,只需要通过quickTime即可。

如果是安卓机,你也可以使用vysor

如果不想投影的小伙伴可以下载夜神模拟器或者Genymotion模拟器。
ok,这一步太简单了,就不多说了。

图像识别

其实我的上一篇文章就是为了这一篇做铺垫,我在python人工智能-图像识别文章中已经详细介绍了如何通过PIL截取图片,并通过pytesseract进行文字识别。这里我就不详细讲述了,同学们可以看上一篇。
这里直接上代码:

#这里根据个人电脑截取投影到电脑的问题和答案区域:
image = ImageGrab.grab(bbox=(50, 410, 750, 1100))
image.save(IMAGE_PATH)image = Image.open(IMAGE_PATH)
character = pytesseract.image_to_string(image, lang="chi_sim+eng", config="-psm 4")
print(character)
list = character.split('\n\n')question = list[0]
answerOne = list[1]
answerTwo = list[2]
answerThree = list[3]

这里我们使用config="-psm 4",因为我们这里问题和答案相当于一个文本列.

例如下列问题:

image = ImageGrab.grab(bbox=(50, 410, 750, 1100))
image.save(IMAGE_PATH)

通过上面的代码,我们会先获得到问题和答案的截图:

然后通过下面的代码识别图中的文字,并保存到变量中,后面会用到:

image = Image.open(IMAGE_PATH)
character = pytesseract.image_to_string(image, lang="chi_sim+eng", config="-psm 4")
print(character)
list = character.split('\n\n')question = list[0]
answerOne = list[1]
answerTwo = list[2]
answerThree = list[3]

运行后

question : 4'人民日报海外版侠客岛的作者_般自称自己为岛叔和?
answerOne : 岛妹
answerTwo : 岛婶
answerThree : 岛姨

这下我们的到来问题和答案,接下来就去搜索答案,由于我门没有强大的后台,所以只能自己去百度爬取数据。

搜索答案

这里我们用到了python库中的requestsBeautifulSoupurllib.request
这篇文章就不具体讲解爬虫的基本知识了。

import requests
from bs4 import BeautifulSoup
import urllib.request#百度知道网
BASE_URL = 'https://zhidao.baidu.com/search?ct=17&pn=0&tn=ikaslist&rn=10&fr=wwwt&word={}'#将上面图像识别后的问题放到百度知道去搜索答案
questionParm = urllib.request.quote(question)
url = BASE_URL.format(questionParm)

上面的代码运行后会得到如下链接
https://zhidao.baidu.com/search?ct=17&pn=0&tn=ikaslist&rn=10&fr=wwwt&word=4'人民日报海外版侠客岛的作者_般 自称自己为岛叔和%3F 岛妹 岛婶 岛姨

接下来就通过我们的BeautifulSoup去解析页面

html = requests.get(url)  # requests 请求页面内容 由于百科搜索没有限制爬取,所以不用设置伪请求头
soup = BeautifulSoup(html.content, "html.parser")  # BeautifulSoup解析页面内容
items = soup.find_all("dl", "dl")  # 获取所有的答案内容for i in items:firstResult = i.find("dd", "dd summary") #百度知道的问题secondresult = i.find("dd", "dd answer") #百度知道的答案

数据分析

到这里我们已经有了如下的数据:

for i in items:firstResult = i.find("dd", "dd summary")secondresult = i.find("dd", "dd answer")if firstResult is not None:countAnswerOne += firstResult.text.count(answerOne)countAnswerTwo += firstResult.text.count(answerTwo)countAnswerThree += firstResult.text.count(answerThree)print(firstResult.text)if secondresult is not None:countAnswerOne += secondresult.text.count(answerOne)countAnswerTwo += secondresult.text.count(answerTwo)countAnswerThree += secondresult.text.count(answerThree)print(secondresult.text)

通过统计答案在搜索结果中的次数来给出推荐答案(较为复杂的推荐结果尚在完善之中,敬请期待)

至少我们心中可以快速的检索到答案,并且有推荐答案,提高了答题正正确率,哈哈。

扫码关注公众号“伟大程序猿的诞生“,更多干货新鲜文章等着你~

公众号回复“资料获取”,获取更多干货哦~

有问题添加本人微信号“fenghuokeji996” 或扫描博客导航栏本人二维码

python实现百万英雄答题神器相关推荐

  1. python考试搜题神器_python实现百万英雄答题神器

    最近百万英雄之类的答题软件广受大家的喜爱,不过对于我这菜鸟基本没有拿过奖. 但是作为一名码农怎么能忍,于是研究出了即将要与大家分享的答题神器. 流程: 首先,带着大家捋一遍流程:first:将手机屏幕 ...

  2. python爬虫进阶教程:百万英雄答题辅助系统

    一.前言 看了网上很多的教程都是通过OCR识别的,这种方法的优点在于通用性强.不同的答题活动都可以参加,但是缺点也明显,速度有限,并且如果通过调用第三方OCR,有次数限制.但是使用本教程提到的数据接口 ...

  3. python 123 io网站答题如果最小化会有提示吗_爬虫进阶教程:百万英雄答题辅助系统...

    百万英雄答题辅助系统 var socket = io.connect('http://你的IP:端口'); var line1 = document.getElementById('line1'); ...

  4. 如何将“跳一跳”的Python辅助原理移植到“百万英雄”答题中

    最近什么比较火?跳一跳.支付宝红包.直播平台答题瓜分奖金.这里讲一讲关于跳一跳和答题瓜分奖金游戏.关于跳一跳的外挂,想必大家都有所耳闻,懂点技术的也会自己刷分了. 最开始有两种外挂,一种是直接通过po ...

  5. 百万英雄类答题游戏的程序员打开方式

    最近知识答题类的app应用和网站  都很火  所以机器人多了,,百度度秘.搜狗小汪等 Python发挥了很大作用 <百万英雄><冲顶大会><头脑王者><一站到 ...

  6. 什么软件可以搜python题_Python答题神器下载-Python百万答题软件 _5577安卓网

    Python答题神器分享给大家.现在直播答题赢奖金的活动可谓是非常的火爆,众多平台相继推出各种答题赚钱活动,如百万英雄.百万赢家.百万作战等,Python是一款百万答题神器,有了该软件让你轻松答题拿奖 ...

  7. 如何用python写一个答题程序_如何使用Python写一个百万英雄的答题辅助程序 (0) 简介...

    关于百万英雄 前不久被女票介绍过来这个活动,需要下载西瓜视频APP(现在好像今日头条全系产品都支持了).这个活动是现在很火的答题分钱模式,只要答对12题就能和所有获胜者一起平分奖金. 最开始遇到不会的 ...

  8. 看我如何用python来玩百万英雄

    最近答题游戏可谓火爆至极,一时间刷爆了朋友圈,在感叹自己已经跟不上互联网思维,为各位金主大大疯狂"撒币"行为所震惊.振奋的同时,也在想怎么用时下热门的人工智能技术来辅助我们的答题呢 ...

  9. python 投屏_python实现《吃鸡大法》加文字识别 玩转百万英雄!

    <百万英雄>比较火.最近我也在玩,把高中的知识都还给教员了.10秒的答题时辰让人根柢来不及去百度搜索.于是我建造了这个剧本,对问题问题停止文字识别,主动翻开网页停止搜索.首先来看一下测试成 ...

最新文章

  1. PARSEC測试集的应用领域和working set的大小
  2. mysql安装教程8.0.21安装,mysql 8.0.21 安装配置方法图文教程
  3. laravel 5.1 Model 属性详解
  4. Mysql基础--常见的表的约束介绍(一)
  5. 把远程仓库的项目,clone到eclipse里面
  6. ApacheHttpServer修改httpd.conf配置文件
  7. 【华为云技术分享】云小课 | 磁盘容量不够用?小课教你来扩容!
  8. android 底部去除list渐变,layer-list渐变色的处理
  9. mysql5.5连不上主机_mysql5.5主从同步排错
  10. Windows Server 2012中的多元密策略
  11. 使用POI中XSSF 实现“合并单元格时,仅保留左上角单元格的值,而放弃其他的值“ 问题排查笔记
  12. ucore Lab1
  13. 系统功能性/非功能性需求
  14. 头歌 CC++基本输入输出
  15. 【无代码体验】用鲸智搭替换Excel表管理数据
  16. 新电脑Linux反应慢怎么回事,电脑反应慢怎么处理 教你几招解决电脑卡慢问题
  17. 挑选代表( 招商银行信用卡中心)
  18. 痞子衡嵌入式:我被邀请做科锐国际旗下数科同道主办的技术沙龙嘉宾
  19. 【蓝桥】2019第十届蓝桥杯省赛C/C++大学B组题目及感想(考场代码和思考)
  20. 【影评-转自豆瓣】疯狂原始人

热门文章

  1. Redis实现全局唯一id,实现优惠卷秒杀的下单功能
  2. 制作深度linux优盘,制作Linux的优盘(usb)启动盘
  3. 篇一、Flask打造 Python Web 开发的灵活框架,实现简易登录。要求有 Python、HTML 和 CSS 基础。
  4. PHP 抓取接口和网页(爬取方式)
  5. vtkImageCheckerboard生成棋盘格,跟随鼠标移动显示
  6. return的返回用法
  7. 原装Win8系统换win7系统(图文教程)
  8. 【UEFI基础】UEFI网络框架之概述
  9. 《算法笔记》4.3小节——算法初步->递归
  10. 学51单片机,总是感觉学不会该怎么办呢?