用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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种高级编程语言,拥有开源免费的环境和庞大的第三方库支持。在繁琐的答题工作中,利用Python实现百万答题自动百度搜索答案,可以大大提高效率和准确性。 Python实现百万答题自动百度搜索答案的过程可以分解成以下几个步骤: 第一步,获取题目和答案。这需要从一个源获取题目和答案的问答对,比如已有的题库或者从网上抓取。获取后,需要对问答对进行特征提取和分存储,方便后续查询时使用。 第二步,使用Python实现百度搜索。可以使用Python内置的urllib库模拟浏览器访问百度搜索引擎,在搜索框中输入问题文本,然后获取并解析搜索结果的信息,包括相关答案和搜索结果的URL列表。需要注意的是,这种方式并不违反百度的搜索协议,因为查询和搜索的次数都是有限制的,且不会对搜索引擎的性能产生负面影响。 第三步,使用Python自然语言处理技术过滤答案。搜索结果的URL列表中可能包含了很多垃圾信息,例如广告、论坛讨论等等,需要使用Python自然语言处理技术对网页内容进行过滤和解析,只保留与答案相关的信息。例如,可以使用词频统计、TF-IDF等技术对搜索结果进行排序和过滤。 第四步,使用Python自动化工具模拟答题过程。使用Python模拟人的操作,可以实现自动化答题,即根据程序的搜索结果,自动点击正确答案并提交。需要注意的是,为了防止被封号,程序需要加入随机休眠和代理池等机制,以模拟人的操作。 通过以上步骤,就可以使用Python实现百万答题自动百度搜索答案。当然,需要提醒大家的是,使用这种方式来解决答题问题,并不是最好的方法,正确的学习和思考才是成功的关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值