Python 代码实现在线答题的自动搜索

这算是一个小插曲吧,即使mobilenet V2论文公布了,还是抵挡不了答题致富的幻想,,哈哈哈 。。
言归正传。因为一些答题外挂延迟太高,故自己操刀写了一个Python代码来实现自动搜索。算法的主要流程是:先对手机进行截屏,下载到电脑上;再对截屏进行裁剪,以获得题干部分的图片;接着OCR对题干图片进行字符识别并处理;最后获得url,使用baidu进行搜索。主要使用的工具有adb和tesseract-ocr。adb下载后直接放在main,py文件夹下,或者加入到系统环境变量也行。需要安装的Python库主要有pillow , pytesseract。在安装pytesseract注意设置tesseract路径为系统环境变量,还有pytesseract.py源码需要进行一些修改,否则会报错。
adb:链接
tesseract-ocr: 链接
中文包chi_sim:链接
贴出代码:

import os
from PIL import Image
import pytesseract
import webbrowser

def get_image(): #获得截屏
    os.system('adb shell screencap -p /sdcard/image.png')
    os.system('adb pull /sdcard/image.png .')

xigua_size = (150,530,1800,800) #百万英雄的题干位置,其它的可以任意修改

while True:
    if raw_input("please input ."+'\n') == '.': #触发条件
        get_image()
        img=Image.open('image.png')
        img_que = img.crop(xigua_size)

        question=pytesseract.image_to_string(img_que,lang='chi_sim')#识别文字
        question=question.replace(' ','').replace('\n','')
        que = question[question.find('.')+1: question.find('?')]#选取题干的切片

        url = "https://www.baidu.com/s?wd=" +que
        webbrowser.open(url)

源代码已上传。链接
整个过程大致需要4s.

后续可以对代码进行完善,比如说抓取url界面的信息,再识别出截屏中的题干部分,统计处题干信息在搜索页面的出现次数打印在屏幕上,给予推荐答案。做起来应该不复杂,需要对代码进行如下修改:
1. list一个列表,包含题干和选项的size。现代码中的识别部分重新def一个函数来完成题干和选项的文字识别;
2. Python抓取百度搜索的内容;
3. 3个for循环遍历,估计for的速度会很慢,但是个人感觉这是无法转化为array的,所以没办法咯。
估计添加完功能后,一整套下来得7-8s,所以不太想做了。。还是回归“正道”吧,接下来两天更新出mobilenet v2的论文笔记~

你可能感兴趣的:(代码)