用Python快速搜索答题类app问题

1.前言

最近答题类app比较火爆,由于题目广并且时间短,自己打字搜索是不太可能的了,于是想自己做一个自动搜索的Python脚本

该Python脚本的原理是用adb工具将手机截图传到电脑上进行文字识别,然后百度搜索该问题,打开浏览器时间还是比较慢的

2.文字识别库pytesseract

2.1 pytesseract库的安装

这个库的安装特别容易,在命令行中输入

pip install pytesseract

即可安装

2.2 tesseract ocr引擎

tesseract ocr引擎是一个开源的强大引擎,安装Windows然后通过相关变量设置即可使用

2.3 image_to_string函数

该函数为pytesseract库的方法,将图片文本转换为文字

from PIL import Image
import pytesseract
question_text = pytesseract.image_to_string(question_img, lang='chi_sim').replace(' ','')

上述为基础用法,并且将空格替换掉

3.adb工具

3.1简介

adb全名Android Debug Bridge,通过该工具,可以在电脑端的命令行与安装手机进行交互,前提是手机开启USB调试

adb有很多功能,它可以模拟屏幕触击,之前火热的跳一跳辅助正是利用该原理进行操作的

3.2python代码中使用adb

python代码中使用adb shell很简单

import os
def pull_screenshot():
    os.system('adb shell screencap -p /sdcard/screenshot.png')
    os.system('adb pull /sdcard/screenshot.png')

这样操作便可以模拟命令行输入将手机端截图发送至脚本目录

4.完整代码

from PIL import Image
import pytesseract
import time
import os
import webbrowser

def pull_screenshot():
    os.system('adb shell screencap -p /sdcard/screenshot.png')
    os.system('adb pull /sdcard/screenshot.png')

def main():
    pull_screenshot()
    img = Image.open("./screenshot.png")
    question_img = img.crop((65,350,1019,621))
    question_text = pytesseract.image_to_string(question_img, lang='chi_sim').replace(' ','')
    webbrowser.open("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=baiduhome_pg&wd="+question_text)

if __name__ == '__main__':
    main()

使用之后发现耗时还是比较久的,在识别1-2s后才能打开浏览器进行搜索,然后我们再找答案的话就可能时间到了

于是改进可以使用爬虫,选定搜索结果的相关网页进行关键词的搜索,进行答案的排查搜索

原文地址:https://www.cnblogs.com/vhyz/p/8395072.html

时间: 2024-10-30 05:04:46

用Python快速搜索答题类app问题的相关文章

直播答题类APP成都麦鱼科技的开发解决方案

直播答题APP应用请添加链接描述是互联网+下的产物,它精准的抓住目标用户需求,通过答题的方式来吸引用户眼球,让用户的生活变得更加有趣,从而成为平台的忠实粉丝.新年伊始,冲顶大会.芝士超人.百万英雄.百万赢家等多款同类型答题APP的迅速走红,使得既能涨知识又能赢奖金的网络直播答题突然在网民中备受追捧,成为2018年互联网首个现象级事件.而各大答题APP动辄几十万甚至上百万元的"烧金游戏",也迅速在网络上圈粉无数,仅仅半个月左右的时间,就能吸引百万量级的粉丝在线答题.那么,如何做好一款直播

《python解释器源码剖析》第13章--python虚拟机中的类机制

13.0 序 这一章我们就来看看python中类是怎么实现的,我们知道C不是一个面向对象语言,而python却是一个面向对象的语言,那么在python的底层,是如何使用C来支持python实现面向对象的功能呢?带着这些疑问,我们下面开始剖析python中类的实现机制.另外,在python2中存在着经典类(classic class)和新式类(new style class),但是到Python3中,经典类已经消失了.并且python2官网都快不维护了,因此我们这一章只会介绍新式类. 13.1 p

Python快速编程入门,打牢基础必须知道的11个知识点 !

Python被誉为全世界高效的编程语言,同时也被称作是“胶水语言”,那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因. Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构. Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和P

Python快速教程

Python快速教程 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 怎么能快速地掌握Python?这是和朋友闲聊时谈起的问题. Python包含的内容很多,加上各种标准库.拓展库,乱花渐欲迷人眼.我一直希望写一个快速的.容易上手的Python教程,而且言语简洁,循序渐进,让没有背景的读者也可以从基础开始学习.我将在每一篇中专注于一个小的概念,希望在闲暇时可以很快读完. 小提醒 教程将专注于Python基础,语法基于Pytho

Python快速教程 尾声(转)

原文地址: http://www.cnblogs.com/vamei/p/3603046.html 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 写了将近两年的Python快速教程,终于大概成形.这一系列文章,包括Python基础.标准库.Django框架.前前后后的文章,包含了Python最重要的组成部分.这一内容的跨度远远超过我的预期,也超过了我看过的任何Python相关书籍.最初动笔的原因,除了要总结,还对很多Pyth

三分之一的程序猿之社交类app踩过的那些坑

三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们来挑选一些app. NO1 陌陌 陌陌为什么能火.陌陌为什么能上市,陌陌的崛起直接引领了陌生人社交的火热,后来者都称自己为“陌陌之后,下一代陌生人社交***”的称号. 像这些都项目都是想做下一个陌陌,至于为什么陌陌能成功,我会告诉你,真正的原因就是,陌陌是第一个以“约炮”为噱头的app,强占先机.其

60分钟Python快速学习(转)

60分钟Python快速学习(给发哥一个交代) 阅读目录 第一步:开发环境搭建: 第一个Python功能:初识Python 02.Python中定义变量不需要数据类型 03.在Pythod中定义方法 04.在Python中书写自己的类 60分钟Python快速学习 之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空格缩进表示等. 今天自己用了60分钟快速学习了下Python的语

为什么工具类App,都要做一个社区?

非著名程序猿涩郎 非著名程序员,字耿左直右,号涩郎.爱搞机,爱编程,是爬行在移动互联网中的一名码匠! 个人微信号:loonggg,微博:涩郎.专注于移动互联网的开发和研究.本号致力于分享IT技术和程序员工作心得体会. 欢迎大家关注与转载. 为什么工具类App.都要做一个社区? 非著名程序猿 移动互联网的蓬勃发展,以至于应用市场上App数以亿计.工具类App甚多,那天我在知乎上看到了一个问题,那就是:为什么工具类App.无论实用没用,都喜欢加上一个社区呢?当然以下的回答也是五花八门. 并且他们答的

Python快速搭建自动回复微信公众号

Python快速搭建自动回复微信公众号 在之前的一篇文章 Python利用 AIML 和 Tornado 搭建聊天机器人微信订阅号 中用 aiml 实现了一个简单的英文聊天机器人订阅号.但是只能处理英文消息,现在用 图灵机器人 来实现一个中文的聊天机器人订阅号. 这里主要介绍如何利用 Python 的 Tornado Web框架以及wechat-python-sdk 微信公众平台 Python 开发包来快速搭建微信公众号. 完整的公众号代码 GitHub 地址:green ,由于目前此公众号有一