记得十年前谷歌大量使用python_关于利用Python玩转百万答题

webchat.jpg

继微信小游戏《跳一跳》火了之后,直播答题类APP突然也火了起来,朋友圈开始各种拉好友、求帮助,甚至希望自己以前的老师们能帮忙组个“百万答题团”:

1.jpeg

注意:只是增加答题准确率,不保证全对。

基本思想是通过屏幕截图,文字识别,然后搜索的方式回答问题。

具体做法如下:

1、 ADB 获取手机截屏

1

2adb shell screencap -p /sdcard/screenshot.png

adb pull /sdcard/screenshot.png .

2、OCR识别题目与选项文字

文字识别两个方法:

谷歌 Tesseract,安装软件即可,接下来主要使用这个方法

百度 OCR livc,需要注册百度API,每天调用次数有限

3、搜索判断

结果判断方式

1.直接打开浏览器搜索问题

3.png

2.题目+每个选项都通过搜索引擎进行搜索,从网页代码中提取搜索结果的数目

3.只用题目进行搜索,统计结果页面代码中包含选项的词频

以下为两个示例结果,可以看出下面两道题,两个方法有不同的结果,可以根据问题类型进行不同的决策。

4.png

5.png

使用步骤 (谷歌 Tesseract)

Android

1. 安装 ADB windows

Mac

使用 brew 进行安装1brew cask install android-platform-tools

安装完后插入安卓设备且安卓已打开 USB 调试模式,终端输入 adb devices ,显示设备号则表示成功。我手上的机子是坚果 pro1,第一次不成功,查看设备管理器有叹号,使用 handshaker 加载驱动后成功,也可以使用豌豆荚之类的试试。

1

2List of devices attached

6934dc33 device

若不成功,可以参考Android 和 iOS 操作步骤进行修改

2. 安装 python 3

3. 安装所需 python 包

命令行:

1pip install -r requirements.txt

或者

1

2

3

4

5pip install pytesseract

pip install pillow

pip install requests

pip install colorama

pip install baidu-aip

4. 安装 谷歌 Tesseract

Windows下链接: 推荐使用安装版,在安装时选择增加中文简体语言包

5. 修改 config/configure.conf 中相应参数信息1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17[region]

question_region = 50, 350, 1000, 560

choices_region = 75, 535, 1000, 1200

# 题目和选项一起的区域

combine_region = 50, 350, 1000, 1200

[tesseract]

# windows

# tesseract 安装路径

tesseract_cmd = C:\Program Files (x86)\Tesseract-OCR\tesseract

# 语言包目录和参数

tessdata_dir_config = --tessdata-dir "C:\Program Files (x86)\Tesseract-OCR\tessdata" --psm 6

# mac 环境, 文件夹分割请使用 / 代替 \ 如 '/usr/local/Cellar/tesseract/3.05.01/bin/tesseract'

注: 可以用 GetImgTool.py 调整题目截取位置 可以到这里查看部分手机截图设置

6. 运行脚本

python GetQuestionAndroid.py 会自动识别文字并打开浏览器

IOS

部分朋友成功

需要安装 WDA 进行截图,参考

iOS 真机如何安装 WebDriverAgent

Android 和 iOS 操作步骤

安装 python-wda

其他步骤相同。

python GetQuestionIos.py

使用步骤 (百度 OCR)

在百度平台上创建应用申请 API Key 和 Secret Key

安装所需 python 包

命令行:

1pip install -r requirements.txt

或者

1

2

3

4

5pip install pytesseract

pip install pillow

pip install requests

pip install colorama

pip install baidu-aip

在 config/configure.conf 中加入相应 key, 并设置截取区域

1

2

3

4

5

6

7[region]

# 题目和选项一起的区域

combine_region = 50, 350, 1000, 1200

[baidu_api]

APP_ID =

API_KEY =

SECRET_KEY

在GetQuestionAndroid.py中切换识别方法

1

2

3

4

5

6

7

8#ocr_img: 需要分别截取题目和选项区域,使用 Tesseract

#ocr_img_tess: 题目和选项一起截,使用 Tesseract

#ocr_img_baidu: 题目和选项一起截,使用 baidu ocr,需配置 key

# question, choices = ocr.ocr_img(img, config)

# question, choices = ocr.ocr_img_tess(img, config)

question, choices = ocr.ocr_img_baidu(img, config)

其它环境配置与 Tesseract 步骤相同

运行脚本

安卓:1python GetQuestionAndroid.py

其它结果分析三种方法可以选择,可以加#注释掉只保留一个方法

windows 命令行有很多乱码问题,建议使用 cmder 作为命令工具,可以支持 linux 命令

总结有了 ADB 截图,能玩出更多花样。python 写小脚本真的很方便。

Next文字识别后 nlp 处理一下关系,然后搜索不同选择结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值