用python搭建百万答题、自动百度搜索答案。

使用平台

windows7

python3.6

MIX2手机

代码原理

手机屏幕内容同步到pc端

对问题截图

对截图文字分析

用浏览器自动搜索文本

使用教程

1、使用Airdroid 将手机屏幕显示在电脑屏幕上。也可使用360手机助手实现。不涉及任何代码。实现效果如图:

2、在提问出现时,运行python程序,将问题部分截图。

这里要用到两个函数:

get_point() #采集要截图的坐标,以及图片的高度宽度

window_capture() #截图

def get_point():

'''''采集坐标,并返回w,h,x,y。 作为window_capture() 函数使用'''

try:

print('正在采集坐标1,请将鼠标移动到该点')

# print(3)

# time.sleep(1)

print(2)

time.sleep(1)

print(1)

time.sleep(1)

x1,y1 = pag.position() #返回鼠标的坐标

print('采集成功,坐标为:',(x1,y1))

print('')

# time.sleep(2)

print('正在采集坐标2,请将鼠标移动到该点')

print(3)

time.sleep(1)

print(2)

time.sleep(1)

print(1)

time.sleep(1)

x2, y2 = pag.position() # 返回鼠标的坐标

print('采集成功,坐标为:',(x2,y2))

#os.system('cls')#清除屏幕

w = abs(x1 - x2)

h = abs(y1 - y2)

x = min(x1, x2)

y = min(y1, y2)

return (w,h,x,y)

except KeyboardInterrupt:

print('获取失败')

def window_capture(result,filename):

'''''获取截图'''

#宽度w

#高度h

#左上角截图的坐标x,y

w,h,x,y=result

hwnd = 0

hwndDC = win32gui.GetWindowDC(hwnd)

mfcDC = win32ui.CreateDCFromHandle(hwndDC)

saveDC = mfcDC.CreateCompatibleDC()

saveBitMap = win32ui.CreateBitmap()

MoniterDev = win32api.EnumDisplayMonitors(None,None)

#w = MoniterDev[0][2][2]

# #h = MoniterDev[0][2][3]

# w = 516

# h = 514

saveBitMap.CreateCompatibleBitmap(mfcDC,w,h)

saveDC.SelectObject(saveBitMap)

saveDC.BitBlt((0,0),(w,h),mfcDC,(x,y),win32con.SRCCOPY)

saveBitMap.SaveBitmapFile(saveDC,filename)

运行后截图如下

3.对图片文字分析提取

参考链接: * 图片转文本 * 配置方式

代码部分:

def orc_pic():

#识别中文

text=pytesseract.image_to_string(Image.open('jietu.jpg'),lang='chi_sim')

#识别英文

# text=pytesseract.image_to_string(Image.open('jietu.jpg'))

text = ''.join(text.split())

return text

4.对文本进行搜索

#浏览器搜索

url = 'http://www.baidu.com/s?wd=%s' % text

webbrowser.open(url)

所有代码如下:

#coding:'utf-8'

import win32gui, win32ui, win32con, win32api

from PIL import Image

import pytesseract

import webbrowser

#先下载pyautogui库,pip install pyautogui

import os,time

import pyautogui as pag

#获取sdk http://ai.baidu.com/。

#获取aip pip install git+https://github.com/Baidu-AIP/python-sdk.git@master

from aip import AipOcr

import json

status=0

""" 你的 APPID AK SK """

APP_ID = '****'

API_KEY = '***'

SECRET_KEY = '***'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

""" 读取图片 """

def get_question(path):

'''百度识别图片文字'''

with open(path, 'rb') as fp:

image=fp.read()

res = client.basicGeneral(image)

words = res['words_result']

lines = [item['words'] for item in words]

question = ''.join(lines)

if question[1] == '.':

question = question[2:]

elif question[2] == '.':

question = question[3:]

return question.replace('?', ' ')

#采集坐标

def get_point():

'''采集坐标,并返回w,h,x,y。 作为window_capture() 函数使用'''

try:

print('正在采集坐标1,请将鼠标移动到该点')

# print(3)

# time.sleep(1)

print(2)

time.sleep(1)

print(1)

time.sleep(1)

x1,y1 = pag.position() #返回鼠标的坐标

print('采集成功,坐标为:',(x1,y1))

print('')

# time.sleep(2)

print('正在采集坐标2,请将鼠标移动到该点')

print(3)

time.sleep(1)

print(2)

time.sleep(1)

print(1)

time.sleep(1)

x2, y2 = pag.position() # 返回鼠标的坐标

print('采集成功,坐标为:',(x2,y2))

#os.system('cls')#清除屏幕

w = abs(x1 - x2)

h = abs(y1 - y2)

x = min(x1, x2)

y = min(y1, y2)

return (w,h,x,y)

except KeyboardInterrupt:

print('获取失败')

#获取截图

def window_capture(result,filename):

'''获取截图'''

#宽度w

#高度h

#左上角截图的坐标x,y

w,h,x,y=result

hwnd = 0

hwndDC = win32gui.GetWindowDC(hwnd)

mfcDC = win32ui.CreateDCFromHandle(hwndDC)

saveDC = mfcDC.CreateCompatibleDC()

saveBitMap = win32ui.CreateBitmap()

MoniterDev = win32api.EnumDisplayMonitors(None,None)

#w = MoniterDev[0][2][2]

# #h = MoniterDev[0][2][3]

# w = 516

# h = 514

saveBitMap.CreateCompatibleBitmap(mfcDC,w,h)

saveDC.SelectObject(saveBitMap)

saveDC.BitBlt((0,0),(w,h),mfcDC,(x,y),win32con.SRCCOPY)

saveBitMap.SaveBitmapFile(saveDC,filename)

def get_point_txt(status):

#如果status=y,则重新获取坐标

'''如果存在point.txt,则询问是否重新采集,删除point.txt;如果不存在txt,则直接采集。'''

if not os.path.isfile('point.txt') :

result = get_point()

with open('point.txt', 'w') as f:

f.write(str(result))

return result

else:

if status=='y':

result = get_point()

with open('point.txt', 'w') as f:

f.write(str(result))

return result

else:

with open('point.txt', 'r') as f:

result = f.readline()

result = eval(result)

return result

def orc_pic():

#识别中文

text=pytesseract.image_to_string(Image.open('jietu.jpg'),lang='chi_sim')

#识别英文

# text=pytesseract.image_to_string(Image.open('jietu.jpg'))

text = ''.join(text.split())

return text

#百度识别

def orc_baidu():

text=get_question('jietu.jpg')

return text

status='y'

start = time.time()

result=get_point_txt(status)

for i in range(10):

window_capture(result,'jietu.jpg')

# text=orc_baidu()

text=orc_pic()

print(text)

#浏览器搜索

url = 'http://www.baidu.com/s?wd=%s' % text

webbrowser.open(url)

# url2='https://www.google.com/search?q=%s' % text

# webbrowser.open(url2)

end = time.time()

time=end-start

print('此次耗时%.1f秒' % time)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: python实现百万答题自动百度搜索答案

本文地址: http://www.cppcns.com/jiaoben/python/217901.html

可以搜python编程答案的软件_python实现百万答题自动百度搜索答案相关推荐

  1. python根据题库答案自动答题_python实现百万答题自动百度搜索答案

    用python搭建百万答题.自动百度搜索答案. 使用平台 windows7 python3.6 MIX2手机 代码原理 手机屏幕内容同步到pc端 对问题截图 对截图文字分析 用浏览器自动搜索文本 使用 ...

  2. python答题搜索_python实现百万答题自动百度搜索答案

    用python搭建百万答题.自动百度搜索答案. 使用平台 windows7 python3.6 MIX2手机 代码原理 手机屏幕内容同步到pc端 对问题截图 对截图文字分析 用浏览器自动搜索文本 使用 ...

  3. 可以搜python题答案的app-python实现百万答题自动百度搜索答案

    用python搭建百万答题.自动百度搜索答案. 使用平台 windows7 python3.6 MIX2手机 代码原理 手机屏幕内容同步到pc端 对问题截图 对截图文字分析 用浏览器自动搜索文本 使用 ...

  4. 用python搭建 百万答题 、自动百度搜索答案

    使用平台 windows7 python3.6 MIX2手机 代码原理 手机屏幕内容同步到pc端 对问题截图 对截图文字分析 用浏览器自动搜索文本 使用教程 使用Airdroid 将手机屏幕显示在电脑 ...

  5. python编程需要什么软件-python编程用哪个软件

    Python是编程入门不错的选择,现在也有不少的程序员业余时间会研究这门编程语言. 学习Python有时候没有第一时间找到好工具,会吃不少的苦头.毕竟好的工具能将工作效率多倍速提升.(推荐学习:Pyt ...

  6. 用Python编程需要什么软件?

    用Python编程需要什么软件?Python编程是一门适合新手入门的编程语言,现在有不少程序员业余时间学习Python编程语言,学习Python找到好工具会大大提高学习的效率.好用的Python编程软 ...

  7. 哪些软件是python编写出来的_用Python编程需要什么软件?

    用Python编程需要什么软件?Python编程是一门适合新手入门的编程语言,现在有不少程序员业余时间学习Python编程语言,学习Python找到好工具会大大提高学习的效率.好用的Python编程软 ...

  8. python开发app的软件_python编程入门APP

    python编程入门APP是一款非常实用的编程学习软件,软件是专门为刚接触python编程的朋友们准备的.在这里可以找到各种学习内容,适用于各个年林短的人学习,大家可以根据自己的需求选择学习即可.软件 ...

  9. python手机开发的软件_Python新手入门教程_在手机上就能学习编程的软件

    Python新手入门教程_在手机上就能学习编程的软件 很多小伙伴会问:我在学编程,想利用坐地铁坐公交吃饭间隙学编程,在手机上能学编程的软件有哪些?毕竟时间宝贵啊!!哈哈哈!!! 这个问题,在悟空回答的 ...

最新文章

  1. 东北大学计算机 大一物理考试题,2020年东北大学822《大学物理》考试大纲及样题...
  2. 网上不知名的示波器方案记录
  3. latex 下划线_备战美赛!论文写作必备Latex排版教程之单词间隔、标题及交叉引用...
  4. windows下如何下载并安装Python 3.5.
  5. 程序员计算器HEX、EDC、OCT等等的意思
  6. Python 日期格式相关
  7. @hdu - 6372@ sacul
  8. 产品原型示例_原型设计模式示例
  9. java重排序_Java内存模型FAQ(四)重排序意味着什么?
  10. linux gfs原理,Linux GFS 配置方法及注意事项
  11. 探讨C#的out关键字
  12. 驱动中的资源共享和临界代码保护
  13. strspn和strcspn妙用
  14. 涉密文件检查工具_保密文件销毁咨询
  15. 功夫小子实践开发-基本工具类的分析和实现
  16. MySQL批量插入性能优化
  17. 硬盘的老化测试软件,硬盘检测工具使用方法
  18. 在Delphi中进行指纹仪的二次开发
  19. stm32f4内部flash讲解
  20. 用友t3服务器地址在哪里修改,畅捷通T+pos端后续想更换服务器地址链接,怎么操作?...

热门文章

  1. P3067 [USACO12OPEN]Balanced Cow Subsets G 折半搜索
  2. Codeforces Round #268 (Div. 1) C. Hack it! 数位dp + 构造数位
  3. P4309 [TJOI2013]最长上升子序列 平衡树 + dp
  4. Atcoder ARC062F - AtCoDeerくんとグラフ色塗り / Painting Graphs with AtCoDeer
  5. Gym - 215177C 玩游戏
  6. HDU1394(权值线段树)
  7. BZOJ #2874. 训练士兵(差分+离散化+主席树)
  8. P5081 Tweetuzki爱取球(期望)(线性求逆元)
  9. P5488-差分与前缀和【NTT,生成函数】
  10. P2387-[NOI2014]魔法森林【LCT】