介绍
这篇文章主要介绍了python如何实现百万答题自动百度搜索答案,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
用python搭建百万答的题,自动百度搜索答案。
<强>使用平台强>
windows7多
python3.6
MIX2手机
<强>代码原理强>
手机屏幕内容同步到pc端
对问题截图
对截图文字分析
用浏览器自动搜索文本
<强>使用教程强>
1,使用Airdroid将手机屏幕显示在电脑屏幕上。也可使用360手机助手实现。不涉及任何代码。实现效果如图:
2,在提问出现时,运行python程序,将问题部分截的图。
这里要用到两个函数:
get_point (),#采集要截图的坐标,以及图片的高度宽度
window_capture (),,#截图
def get_point ():, ,& # 39;& # 39;& # 39;& # 39;& # 39;采集坐标,并返回w h, x, y只作为window_capture(),函数使用& # 39;& # 39;& # 39;, 试题:大敌; ,打印(& # 39;正在采集坐标1,请将鼠标移动到该点& # 39;), ,#印刷(3), ,# time . sleep (1), (2)打印大敌; ,time . sleep (1) ,打印(1) ,time . sleep (1)=,x1, y1 pag.position(), #返回鼠标的坐标, ,打印(& # 39;采集成功,坐标为:& # 39;,(x1, y1)), ,打印(& # 39;& # 39;), ,# time . sleep (2), ,打印(& # 39;正在采集坐标2,请将鼠标移动到该点& # 39;), (3)打印大敌; ,time . sleep (1) (2)打印大敌; ,time . sleep (1) ,打印(1) ,time . sleep (1) ,x2, y2 =, pag.position(), #,返回鼠标的坐标, ,打印(& # 39;采集成功,坐标为:& # 39;,(x2, y2)), ,# os.system (& # 39; cls # 39;) #清除屏幕,=,w abs (x1 安康;x2),=,h abs (y1 安康;y2),=,,x  min (x1, x2),=,,y  min (y1, y2), ,return (w h, x, y), except KeyboardInterrupt:大敌; ,打印(& # 39;获取失败& # 39;)
def window_capture(因此,文件名):, ,& # 39;& # 39;& # 39;& # 39;& # 39;获取截图& # 39;& # 39;& # 39;, ,#宽度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(不,没有), ,# 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文件名)
运行后截图如下
3。对图片文字分析提取
参考链接:*图片转文本*配置方式
代码部分:
def orc_pic ():, ,#识别中文, ,文本=pytesseract.image_to_string (Image.open (& # 39; jietu.jpg& # 39;), lang=& # 39; chi_sim& # 39;), ,#识别英文, ,#文本=pytesseract.image_to_string (Image.open (& # 39; jietu.jpg& # 39;)),=,text & # 39; & # 39; . join (text.split ()), 以前,return 文本>4。对文本进行搜索
, #浏览器搜索 时间=url & # 39; http://www.baidu.com/s?wd=%s& # 39; %,文本 webbrowser.open (url)所有代码如下:
, #编码:& # 39;utf - 8 # 39; win32ui, import win32gui, win32con, win32api 得到PIL import 形象 import pytesseract import 浏览器 #先下载pyautogui库,pip install pyautogui import 操作系统时间 import pyautogui  as pag #获取sdk http://ai.baidu.com/? #获取aip pip  install git + https://github.com/Baidu-AIP/python-sdk.git@master 得到aip import  AipOcr import json 状态=0 “““,你的,APPID AK SK “““ 时间=APP_ID & # 39; * * * * & # 39; 时间=API_KEY & # 39; * * * & # 39; 时间=SECRET_KEY & # 39; * * * & # 39; 时间=client AipOcr (APP_ID, API_KEY, SECRET_KEY) “““,读取图片,“““ def get_question(路径): ,& # 39;& # 39;& # 39;百度识别图片文字& # 39;& # 39;& # 39; ,with 开放(路径,& # 39;rb # 39;), as 外交政策: ,图像=fp.read ()=,,res  client.basicGeneral(图片)=,res, words  [& # 39; words_result& # 39;】=,lines [项[& # 39;词# 39;],for item 拷贝文字)=,question & # 39; & # 39; . join()行 ,if 问题[1],==,& # 39;# 39;公司:=,question 问题[2] ,elif 问题[2],==,& # 39;# 39;公司:=,question 问题[3:] ,return question.replace (& # 39; ? & # 39;,, & # 39;, & # 39;) #采集坐标 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullpython如何实现百万答题自动百度搜索答案