精华内容
下载资源
问答
  • 我想要写一个自动点击屏幕的脚本,要点击某段文字,怎么获取这个文字的坐标啊?</p>
  • 因为学校要求要刷一门叫《包装...思路如下:手机屏幕投影到电脑上;截图并识别图片文字;调用百度来进行搜索;提取html关键字。环境配置:python3.6、第三方库:pyautogui、PIL、pytesseract、识别引擎tesseract-...

    因为学校要求要刷一门叫《包装世界》的网课,而课程里有200多道选择题,而且只能在手机完成,网页版无法做题,而看视频是不可能看视频的,这辈子都不可能看...所以写了几行代码来进行百度搜答案。

    思路如下:

    手机屏幕投影到电脑上;

    截图并识别图片文字;

    调用百度来进行搜索;

    提取html关键字。

    环境配置:python3.6、第三方库:pyautogui、PIL、pytesseract、识别引擎tesseract-ocr

    要识别中文,ocr引擎要下载一个中文包chi_sim放进Tesseract-OCR\tessdata里面。安装完ocr后还要配置一下调用路径,在Python36\Lib\site-packages\pytesseract找到pytesseract.py(这是我的windows路径),打开在里面添加一下路径:

    1 # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY

    2 tesseract_cmd = 'tesseract'

    3 tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

    4 img_mode = 'RGB'

    然后用AirDroid或者Vysor、360手机助手之类的将手机的屏幕投影到电脑上,用鼠标确定截图坐标,代码如下:

    1 importpyautogui as pag

    2 x,y =pag.position()

    3 posStr = "position:"+str(x).rjust(4)+','+str(y).rjust(4)

    4 print(posStr)

    要获取两个坐标(截图开始坐标和结束坐标),然后利用获取的坐标运用如下代码截图并调用ocr引擎识别(识别出来的字是每个用空格分开的,所以要去除字符串中的空格),代码如下:

    1 from PIL importImage2 from PIL importImageGrab3 importpytesseract4 importwebbrowser5

    6 pos = (0,245,425, 327)7 cut_img =ImageGrab.grab(pos)8 cut_img.save('C:/imgSave/1.jpg') #保存截图到文件夹中

    9 print("screenshots sucess")10

    11 text=pytesseract.image_to_string(Image.open('C:/imgSave/1.jpg'),lang='chi_sim') #调用识别引擎识别

    12 text=text.replace(" ","") #去空格13 print(text)14 url = 'http://www.baidu.com/s?wd=%s' % text #调用百度搜索

    15 webbrowser.open(url)

    最终因为搜出来的全是题库,所以就没有提取html关键字了,其实是懒。

    展开全文
  • 更多的python教学资源,视频,电子书资料请到公众号菜单栏获取,如果链接失效请联系我。这里我推荐《全民一起玩python》系列的视频,在公众号发的资源中也有,我是看这个开始学习的,讲解的很生动透彻有趣,都不像是...

    a273fe59a5f9642ce707807808897f40.gif戳蓝字“听风python”关注我们哦!

    66d8d3c23e9dfef014ddea545f918672.png

    本板块文章取自GitHub的100天练就python高手计划,循序渐进,逐渐学习,适合小白入门。

    更多的python教学资源,视频,电子书资料请到公众号菜单栏获取,如果链接失效请联系我。这里我推荐《全民一起玩python》系列的视频,在公众号发的资源中也有,我是看这个开始学习的,讲解的很生动透彻有趣,都不像是编程课了,基础的python安装查看之前的文章:python安装教程

    b3b1cd2107e15af0922aa76aba51a468.gif

    基于tkinter模块的GUI

    GUI是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,在此也无需进行赘述。Python默认的GUI开发模块是tkinter(在Python 3以前的版本中名为Tkinter),从这个名字就可以看出它是基于Tk的,Tk是一个工具包,最初是为Tcl设计的,后来被移植到很多其他的脚本语言中,它提供了跨平台的GUI控件。当然Tk并不是最新和最好的选择,也没有功能特别强大的GUI控件,事实上,开发GUI应用并不是Python最擅长的工作,如果真的需要使用Python开发GUI应用,wxPython、PyQt、PyGTK等模块都是不错的选择。

    基本上使用tkinter来开发GUI应用需要以下5个步骤:

    1. 导入tkinter模块中我们需要的东西。

    2. 创建一个顶层窗口对象并用它来承载整个GUI应用。

    3. 在顶层窗口对象上添加GUI组件。

    4. 通过代码将这些GUI组件的功能组织起来。

    5. 进入主事件循环(main loop)。

    下面的代码演示了如何使用tkinter做一个简单的GUI应用。

    import tkinterimport tkinter.messageboxdef main():flag = True# 修改标签上的文字def change_label_text():nonlocal flagflag = not flagcolor, msg = ('red', 'Hello, world!')\if flag else ('blue', 'Goodbye, world!')label.config(text=msg, fg=color)# 确认退出def confirm_to_quit():if tkinter.messagebox.askokcancel('温馨提示', '确定要退出吗?'):top.quit()# 创建顶层窗口top = tkinter.Tk()# 设置窗口大小top.geometry('240x160')# 设置窗口标题top.title('小游戏')# 创建标签对象并添加到顶层窗口label = tkinter.Label(top, text='Hello, world!', font='Arial -32', fg='red')label.pack(expand=1)# 创建一个装按钮的容器panel = tkinter.Frame(top)# 创建按钮对象 指定添加到哪个容器中 通过command参数绑定事件回调函数button1 = tkinter.Button(panel, text='修改', command=change_label_text)button1.pack(side='left')button2 = tkinter.Button(panel, text='退出', command=confirm_to_quit)button2.pack(side='right')panel.pack(side='bottom')# 开启主事件循环tkinter.mainloop()if __name__ == '__main__':main()

    需要说明的是,GUI应用通常是事件驱动式的,之所以要进入主事件循环就是要监听鼠标、键盘等各种事件的发生并执行对应的代码对事件进行处理,因为事件会持续的发生,所以需要这样的一个循环一直运行着等待下一个事件的发生。另一方面,Tk为控件的摆放提供了三种布局管理器,通过布局管理器可以对控件进行定位,这三种布局管理器分别是:Placer(开发者提供控件的大小和摆放位置)、Packer(自动将控件填充到合适的位置)和Grid(基于网格坐标来摆放控件),此处不进行赘述。

    使用Pygame进行游戏开发

    Pygame是一个开源的Python模块,专门用于多媒体应用(如电子游戏)的开发,其中包含对图像、声音、视频、事件、碰撞等的支持。Pygame建立在SDL的基础上,SDL是一套跨平台的多媒体开发库,用C语言实现,被广泛的应用于游戏、模拟器、播放器等的开发。而Pygame让游戏开发者不再被底层语言束缚,可以更多的关注游戏的功能和逻辑。

    下面我们来完成一个简单的小游戏,游戏的名字叫“大球吃小球”,当然完成这个游戏并不是重点,学会使用Pygame也不是重点,最重要的我们要在这个过程中体会如何使用前面讲解的面向对象程序设计,学会用这种编程思想去解决现实中的问题。

    制作游戏窗口

    import pygamedef main():# 初始化导入的pygame中的模块pygame.init()# 初始化用于显示的窗口并设置窗口尺寸screen = pygame.display.set_mode((800, 600))# 设置当前窗口的标题pygame.display.set_caption('大球吃小球')running = True# 开启一个事件循环处理发生的事件while running:# 从消息队列中获取事件并对事件进行处理for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseif __name__ == '__main__':main()

    在窗口中绘图

    可以通过pygame中draw模块的函数在窗口上绘图,可以绘制的图形包括:线条、矩形、多边形、圆、椭圆、圆弧等。需要说明的是,屏幕坐标系是将屏幕左上角设置为坐标原点(0, 0),向右是x轴的正向,向下是y轴的正向,在表示位置或者设置尺寸的时候,我们默认的单位都是像素。所谓像素就是屏幕上的一个点,你可以用浏览图片的软件试着将一张图片放大若干倍,就可以看到这些点。pygame中表示颜色用的是色光三原色表示法,即通过一个元组或列表来指定颜色的RGB值,每个值都在0~255之间,因为是每种原色都用一个8位(bit)的值来表示,三种颜色相当于一共由24位构成,这也就是常说的“24位颜色表示法”。

    import pygamedef main():# 初始化导入的pygame中的模块pygame.init()# 初始化用于显示的窗口并设置窗口尺寸screen = pygame.display.set_mode((800, 600))# 设置当前窗口的标题pygame.display.set_caption('大球吃小球')# 设置窗口的背景色(颜色是由红绿蓝三原色构成的元组)screen.fill((242, 242, 242))# 绘制一个圆(参数分别是: 屏幕, 颜色, 圆心位置, 半径, 0表示填充圆)pygame.draw.circle(screen, (255, 0, 0,), (100, 100), 30, 0)# 刷新当前窗口(渲染窗口将绘制的图像呈现出来)pygame.display.flip()running = True# 开启一个事件循环处理发生的事件while running:# 从消息队列中获取事件并对事件进行处理for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseif __name__ == '__main__':main()

    加载图像

    如果需要直接加载图像到窗口上,可以使用pygame中image模块的函数来加载图像,再通过之前获得的窗口对象的blit方法渲染图像,代码如下所示。

    import pygamedef main():# 初始化导入的pygame中的模块pygame.init()# 初始化用于显示的窗口并设置窗口尺寸screen = pygame.display.set_mode((800, 600))# 设置当前窗口的标题pygame.display.set_caption('大球吃小球')# 设置窗口的背景色(颜色是由红绿蓝三原色构成的元组)screen.fill((255, 255, 255))# 通过指定的文件名加载图像ball_image = pygame.image.load('./res/ball.png')# 在窗口上渲染图像screen.blit(ball_image, (50, 50))# 刷新当前窗口(渲染窗口将绘制的图像呈现出来)pygame.display.flip()running = True# 开启一个事件循环处理发生的事件while running:# 从消息队列中获取事件并对事件进行处理for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseif __name__ == '__main__':main()

    实现动画效果

    说到动画这个词大家都不会陌生,事实上要实现动画效果,本身的原理也非常简单,就是将不连续的图片连续的播放,只要每秒钟达到了一定的帧数,那么就可以做出比较流畅的动画效果。如果要让上面代码中的小球动起来,可以将小球的位置用变量来表示,并在循环中修改小球的位置再刷新整个窗口即可。

    import pygamedef main():# 初始化导入的pygame中的模块pygame.init()# 初始化用于显示的窗口并设置窗口尺寸screen = pygame.display.set_mode((800, 600))# 设置当前窗口的标题pygame.display.set_caption('大球吃小球')# 定义变量来表示小球在屏幕上的位置x, y = 50, 50running = True# 开启一个事件循环处理发生的事件while running:# 从消息队列中获取事件并对事件进行处理for event in pygame.event.get():if event.type == pygame.QUIT:running = Falsescreen.fill((255, 255, 255))pygame.draw.circle(screen, (255, 0, 0,), (x, y), 30, 0)pygame.display.flip()# 每隔50毫秒就改变小球的位置再刷新窗口pygame.time.delay(50)x, y = x + 5, y + 5if __name__ == '__main__':main()

    碰撞检测

    通常一个游戏中会有很多对象出现,而这些对象之间的“碰撞”在所难免,比如炮弹击中了飞机、箱子撞到了地面等。碰撞检测在绝大多数的游戏中都是一个必须得处理的至关重要的问题,pygame的sprite(动画精灵)模块就提供了对碰撞检测的支持,这里我们暂时不介绍sprite模块提供的功能,因为要检测两个小球有没有碰撞其实非常简单,只需要检查球心的距离有没有小于两个球的半径之和。为了制造出更多的小球,我们可以通过对鼠标事件的处理,在点击鼠标的位置创建颜色、大小和移动速度都随机的小球,当然要做到这一点,我们可以把之前学习到的面向对象的知识应用起来。

    from enum import Enum, uniquefrom math import sqrtfrom random import randintimport pygame@uniqueclass Color(Enum):"""颜色"""RED = (255, 0, 0)GREEN = (0, 255, 0)BLUE = (0, 0, 255)BLACK = (0, 0, 0)WHITE = (255, 255, 255)GRAY = (242, 242, 242)@staticmethoddef random_color():"""获得随机颜色"""r = randint(0, 255)g = randint(0, 255)b = randint(0, 255)return (r, g, b)class Ball(object):"""球"""def __init__(self, x, y, radius, sx, sy, color=Color.RED):"""初始化方法"""self.x = xself.y = yself.radius = radiusself.sx = sxself.sy = syself.color = colorself.alive = Truedef move(self, screen):"""移动"""self.x += self.sxself.y += self.syif self.x - self.radius <= 0 or \self.x + self.radius >= screen.get_width():self.sx = -self.sxif self.y - self.radius <= 0 or \self.y + self.radius >= screen.get_height():self.sy = -self.sydef eat(self, other):"""吃其他球"""if self.alive and other.alive and self != other:dx, dy = self.x - other.x, self.y - other.ydistance = sqrt(dx ** 2 + dy ** 2)if distance < self.radius + other.radius \and self.radius > other.radius:other.alive = Falseself.radius = self.radius + int(other.radius * 0.146)def draw(self, screen):"""在窗口上绘制球"""pygame.draw.circle(screen, self.color,
    (self.x, self.y), self.radius, 0)

    事件处理

    可以在事件循环中对鼠标事件进行处理,通过事件对象的type属性可以判定事件类型,再通过pos属性就可以获得鼠标点击的位置。如果要处理键盘事件也是在这个地方,做法与处理鼠标事件类似。

    def main():# 定义用来装所有球的容器balls = []# 初始化导入的pygame中的模块pygame.init()# 初始化用于显示的窗口并设置窗口尺寸screen = pygame.display.set_mode((800, 600))# 设置当前窗口的标题pygame.display.set_caption('大球吃小球')running = True# 开启一个事件循环处理发生的事件while running:# 从消息队列中获取事件并对事件进行处理for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 处理鼠标事件的代码if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:# 获得点击鼠标的位置x, y = event.posradius = randint(10, 100)sx, sy = randint(-10, 10), randint(-10, 10)color = Color.random_color()# 在点击鼠标的位置创建一个球(大小、速度和颜色随机)ball = Ball(x, y, radius, sx, sy, color)# 将球添加到列表容器中balls.append(ball)screen.fill((255, 255, 255))# 取出容器中的球 如果没被吃掉就绘制 被吃掉了就移除for ball in balls:if ball.alive:ball.draw(screen)else:balls.remove(ball)pygame.display.flip()# 每隔50毫秒就改变球的位置再刷新窗口pygame.time.delay(50)for ball in balls:ball.move(screen)# 检查球有没有吃到其他的球for other in balls:ball.eat(other)if __name__ == '__main__':main()

    上面的两段代码合在一起,我们就完成了“大球吃小球”的游戏(如下图所示),准确的说它算不上一个游戏,但是做一个小游戏的基本知识我们已经通过这个例子告诉大家了,有了这些知识已经可以开始你的小游戏开发之旅了。其实上面的代码中还有很多值得改进的地方,比如刷新窗口以及让球移动起来的代码并不应该放在事件循环中,等学习了多线程的知识后,用一个后台线程来处理这些事可能是更好的选择。如果希望获得更好的用户体验,我们还可以在游戏中加入背景音乐以及在球与球发生碰撞时播放音效,利用pygame的mixer和music模块,我们可以很容易的做到这一点,大家可以自行了解这方面的知识。事实上,想了解更多的关于pygame的知识,最好的教程是pygame的官方网站,如果英语没毛病就可以赶紧去看看啦。 如果想开发3D游戏,pygame就显得力不从心了,对3D游戏开发如果有兴趣的读者不妨看看Panda3D。

    b3b1cd2107e15af0922aa76aba51a468.gif

     长按识别下图二维码关注我

    8140b6f5fd2faece032885a3e09cba31.png

    展开全文
  • 时不时就有 b 友让我整点“Python GUI 相关的教程”今天小编就来给你说道说道用 Python 来写 GUI 的库有好几个比如 pyqt、wxpython、tkinter、kivy相对来说比较常用的是 tkinter它是 Python 内置的库用起来比较 ...

    52c9b11762194b3d60164fc289ca663b.gif

    时不时就有 b 友让我整点

    “Python GUI 相关的教程”

    今天小编就来给你说道说道

    4548af16eed5c4a192245988366ed744.gif

    用 Python 来写 GUI 的库有好几个

    比如 pyqt、wxpython、tkinter、kivy

    相对来说比较常用的是 tkinter它是 Python 内置的库用起来比较 “直接了当”

    是这样的

    TK 是一个开源的开发工具包里面提供了很多界面组件的接口比如按钮、选项框、输入框这些

    而且这些组件是跨平台的在不同的操作系统中都可以运行比如你常见的 MacOS,Linux,Windows

    c5ebe96e28df8d59fa1ee0778f9e6eb5.gif

    既然如此

    Python 就把这些接口调起来封装成函数和类然后整成 tkinter 模块

    这样当我们想要写 GUI 的时候直接使用 Python 调用 tkinter 就好了

    6cad9baa17d9d71a51db7e1893e9c393.png

    在你的终端里面输入“python -m tkinter”

    6e11bec676d3e86bf2ce98c232b6fde3.png

    出现类似的窗口说明你的 tkinter 和 tk 都给安装上了

    那么如何玩 tkinter 呢

    接下来就是学习 Python 的正确姿势

    a3981e4c44bec4e5a88b39931ac30abd.png

    小编这里发一波福利包含了2020面试大全 爬虫 编程 实战项目哦 需要可以点击下方链接领取

    PYTHON进阶资料 面试必备笔记 源代码 进阶视频 爬虫实战 高端项目实战免费领取shimo.im
    ace10eb612fb7c90e2633972f9180833.png


    组件的使用

    我先把一些常用的组件操作给你介绍一下

    首先我们导入 tkinter

    然后调用 Tk 方法

    fa1b9cf4c4fb110f25fad33ae5faca80.png

    运行就可以得到一个窗口

    9ddb50b7c9ed4aaaa687984b7ff6aa82.png

    样式与你的系统类型相关

    其中我们调用了 mainloop 方法

    主要是让它去循环等待用户的交互

    定义窗口的标题

    e945d231b8785e524110957010fb4d56.png

    样式与你的系统类型相关

    其中我们调用了 mainloop 方法

    主要是让它去循环等待用户的交互

    定义窗口的标题

    e945d231b8785e524110957010fb4d56.png

    窗口的高宽是根据组件的大小相对而定的

    这样能在不同的系统中比较好的运行

    当然,你也可以

    使用 geometry自己指定窗口的宽高

    61938c8ffa10c6879f410b37d13f8a9d.png

    tkinter 把不同的组件

    都封装成了 Class

    比如想要往里加入文本

    就可以使用 Label 对

    962b2789636354dfd07757f6ae76be48.png

    这里创建了一个 Label 小组件

    然后用 pack 塞到窗口中去

    每个组件都有一些属性可以设置

    比如这里可以设置常用的宽高字体颜色

    41212aa9897295fcd79248ceb43f1d26.png

    加个骚骚的按钮

    f3754e788273b2345512e5e0107ab825.png

    ddc175d605ed8b5652d23a95aa56e820.png

    按钮可以定义点击事件

    比如你想当点击按钮的时候调用方法来修改 Lable 里面的内容

    可以使用 command 来绑定回调函数

    d7b6e52dbafc376997dec88e36be2ea4.png

    运行一波

    6116df89dd991e01546e80c943a534c2.png

    添加文本输入框可以使用 Entry 对象

    41b75c7afa3ee893294a623d62c4c94e.png

    可以通过 entry 的 get 方法

    获取输入的值

    比如我们要让用户输入名称然后点击按钮把文字变成“xxx,你被绿了”就可以这样

    4aaa9f5a7c9caa10315435cdaad5b5c2.png

    这里主要是将输入的内容

    作为 name 参数传给 change_label 方法

    976eb8937d56453b8db91a4687f0a234.png

    其它需要点击的组件使用方式和 Button 差不多

    添加单选

    RadioButton

    80066560597c01c2e6cac7533d5c0263.png

    添加下拉选择框

    使用 Combbox这个需要导入 ttk

    d98df969d3da4a60b4cde7e5e11d246c.png

    多选框

    CheckButton

    6592766bad71c152ba0cfc36e96ca44a.png

    弹窗messagebox

    让它点击按钮的时候弹窗可以这样

    37d44ddf0d42ebba553caeab61966d5a.png

    添加下拉选择框

    使用 Combbox这个需要导入 ttk

    62fdc2de08c3bb7d89b8279b5901572e.png

    d98df969d3da4a60b4cde7e5e11d246c.png

    多选框

    CheckButton

    6592766bad71c152ba0cfc36e96ca44a.png

    弹窗messagebox

    让它点击按钮的时候弹窗可以这样

    37d44ddf0d42ebba553caeab61966d5a.png

    029224d93885c78f7ca154099affc649.png

    除了 showinfo 之外show 警告和错误

    660e7b0da7e7ed5a3f0a85d0d43d4d3a.png

    比如显示警告

    1da601d7130fee404df58edc24677ffb.png

    除了 showinfo 之外show 警告和错误

    660e7b0da7e7ed5a3f0a85d0d43d4d3a.png

    比如显示警告

    1da601d7130fee404df58edc24677ffb.png

    长文本Text

    b59b1a6da2a69847ab5a2bcadbf1004f.png

    获取 Text 的内容

    a2edfaea1a4c1b3f7f60769a8a745be2.png

    其中 get 可以传入两参数一个是想要获取的行数

    一个是想要获取该行中的位置

    使用 tk.END 可以获取全部

    组件的布局

    刚刚的布局有点乱可以在组件 pack 的时候设置参数来控制组件的位置

    56546c2c10739f77ba9fbd06c649a1c8.png

    这里用 side 指定位置padx 来指定边距

    一般来说窗口如果有多个组件

    会先定义 Frame 来先布局

    Frame 也是一个组件

    它可以填充其它组件进来

    比如我们可以把刚刚的窗口

    0d3f6397f983700e6b62d6836f89cd25.png

    分成 5 个 Frame

    a707c41dc6fe2ee3e5fac0329d98d741.png

    这里将不同的组件填充到相应的 Frame 中每个 Frame 设置的间隔为 5

    820504d07c4229f0f222e76573bdf99c.png

    另一种比较常用的布局方式是使用 grid()

    你可以把窗口看成是一个多行多列的表格

    比如我们想把刚刚窗口的 5 个 Frame

    划分成

    1c187950ab4104d363011e35b75f9b16.png

    那么就可以这样

    8dfc11b9d50d8739f22e134b7b168066.png

    通过 grid 去指定 frame 的

    具体在第几行第几列

    其中 sticky 可以控制

    组件的对其方向pad 控制间距

    你还可以通过

    rowconfigure 和 columnconfigure来控制单元格之间的大小

    fcda48bc1810cc59514ff1f6cd7d66fc.png

    一种更好的方式可以用面向对象的方式来使用 tkinter 写 GUI

    像以下这样在类方法中定义组件和事件

    effaba8789f47ff2fe04f8d0991f0791.png

    ok,以上

    你可以自己去写点界面玩玩

    当然了我在这里只是介绍一些常用组件的使用

    大多组件的使用方式都差不多

    更多的组件和使用细节可以参考https://docs.python.org/3/library/tk.html

    哦对了

    之前在 VIP 简单写了下聊天室的实现用的也是 tkinter

    38cc319539c428e13922a28dd8136fdc.gif

    希望对你又帮助

    展开全文
  • [Python] 纯文本查看 复制代码import osfrom aip import AipOcrimport keyboardfrom PIL import ImageGrabfrom time import sleepdef get_reuslt(img_name):a=input('是否添加可信度?(建议字多不加) (y/n):')if a ...

    [Python] 纯文本查看 复制代码import osfrom aip import AipOcr

    import keyboard

    from PIL import ImageGrab

    from time import sleep

    def get_reuslt(img_name):

    a=input('是否添加可信度?(建议字多不加) (y/n):')

    if a == 'y':

    APP_ID = 'xxxxxx'

    API_KEY = 'xxxxxx'

    SECRET_KEY = 'xxxxxx'

    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

    """ 读取图片 """

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

    image = fp.read()

    """ 如果有可选参数 """

    options = {}

    options["detect_direction"] = "true"

    options["probability"] = "true"

    """ 带参数调用通用文字识别(高精度版) """

    client = client.basicAccurate(image, options)

    print(type(client))

    for i in client['words_result']:

    reuslt = i['words']

    Credibility = i['probability']['average']

    wyc=reuslt+" 平均可信度为:"+str((Credibility) * 100) + '%'

    print(wyc)

    with open(img_name+'.txt','a',encoding='utf-8') as f :

    f.write(wyc+'\n')

    print("文本已经保存本地")

    else:

    APP_ID = '16689194'

    API_KEY = 'jXW5sEC420DZidAwMFMGQGsI'

    SECRET_KEY = '5LRvxbPip8ZIdkM31rNs7Zo6d5o2Wv8q'

    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

    """ 读取图片 """

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

    image=fp.read()

    """ 如果有可选参数 """

    options = {}

    options["detect_direction"] = "true"

    options["probability"] = "false"

    """ 带参数调用通用文字识别(高精度版) """

    client=client.basicAccurate(image, options)

    for i in client['words_result']:

    reuslt=i['words']

    print(reuslt+'\t')

    with open(img_name+'.txt','a',encoding='utf-8') as f :

    f.write(reuslt+'\n')

    print("文本已经保存本地" )

    def jietu():

    while 1:

    keyboard.wait('f1','')

    keyboard.wait('ctrl+c')

    sleep(0.2)

    image = ImageGrab.grabclipboard()

    # 从剪贴版获取图片

    image.save('截图.jpg')

    for filename in os.listdir(r"./"):

    if (filename.endswith('.jpg')) or (filename.endswith('.png')) or (filename.endswith('.bmp')):

    get_reuslt(filename)

    print('请继续截图....')

    def main():

    for filename in os.listdir(r"./"):

    if (filename.endswith('.jpg')) or (filename.endswith('.png')) or (filename.endswith('.bmp')) :

    get_reuslt(filename)

    input("结束请按Enter键")

    if __name__ == '__main__':

    print('********'*2+'我秒选托儿所!!!!'+'********'*2+'\n')

    print('截屏识别填1,图片识别填2:')

    pd=input('')

    if pd=='2':

    print('***************请将图片放置本目录下***************')

    a=input("我已将图片放好? (y/n):")

    if a=='y':

    main()

    else:

    pass

    else:

    print('只支持快捷键F1截屏,需要按 Ctrl+c 将图片存到剪贴板...')

    print('请开始截图.......')

    jietu()

    展开全文
  • 一、简介你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时把你截出来的图片中的文字识别出来。二、模块...
  • # 导入组件from uiautomatorimport deviceas dimport pytesseractfrom PILimport Imageimport osimport time# 函数入口def main():print("脚本初始化")dinfo=d.info#获取设备信息print(d.info)print(dinfo.get(...
  • 最近,快要期末考试了...今天带领大家使用Python制作一个简易的OCR图片文字识别工具,来解决这类问题。Python制作一个OCR工具【我们需要知道的几个知识点】OCR:中文叫光学字符识别,英文全称是Optical Character R...
  • https://blog.csdn.net/WZZ18191171661/article/details/90762434 https://www.pyimagesearch.com/2017/02/13/recognizing-digits-with-opencv-and-python/ 搭建python环境,安装opencv-python,imutils,scipy
  • python检索屏幕文本

    千次阅读 2020-03-11 02:39:38
    输入字符串,检索当前电脑屏幕,返回字符串所在的语句和字符串的坐标。 import io from aip import AipOcr from PIL import ImageGrab def baiduOCR(string): #百度文字识别 APP_ID = '18******' API_KEY = '...
  • python 获取网页的内容

    万次阅读 多人点赞 2018-11-07 15:07:16
    1.安装pip 我的个人桌面系统用的linuxmint,系统默认没有安装pip,考虑到后面安装... $ sudo apt install python-pip 安装成功,查看PIP版本:     1 $ pip -V 2.安装reques...
  • python作为一门高级编程语言,它的定位是优雅、明确和简单。阅读Python编写的代码感觉像在阅读英语一样,这让使用者可以专注于解决问题而不是去搞明白语言本身。Python虽然是基于C语言编写,但是摒弃了C中复杂的指针...
  • Python模拟屏幕点击自动完成微信词达人任务 该贴是以微信词达人为基础实践而写,如果我们并没有使用词达人,该源码中关键代码部分和模拟点击原理希望对大家有帮助。 对词达人自动点击完成任务我分为以下几个步骤 ...
  • Python获取Win7,Win10系统缩放大小

    千次阅读 2018-11-02 16:56:30
    Python获取Win7,Win10系统缩放大小 使用pywin32调用windows系统接口。 利用GetDeviceCaps获取指定设备的设备信息。 具体参考...
  • 屏幕录制可以运用的场景是非常多的,比方说屏幕录制游戏视频、屏幕录制直播视频、屏幕录制追剧视频、屏幕录制网课视频、屏幕录制演示视频、屏幕录制会议视频、屏幕录制讲座视频等等。那么,屏幕录制工具有哪些呢?...
  • python获取字母在字母表对应位置的几种方法及性能对比较某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://projecteuler.net/problem=42 其中一步解题步骤就是...
  • python win32GUI模块中切换句柄的一个奇怪问题?每次执行的时候你把句柄打印出来,一目了然各位大神,哪里有perl win32::gui界面编写教程?就官方文档python win32gui模块怎么下载?下载网址...
  • 树莓派picamera+RTSP实现PC端python获取视频流 1.做什么事情? 本人想利用树莓派实时传输视屏,这样我在python端获视屏之后就可以做一些计算(本人从githu上找到了一个人脸表情识别代码,在此处应用,非常完美) 2....
  • 根据我的习惯,要是有一个程序能够实现点击屏幕两点就能够获取区域间的文本就好了。 文章目录如何响应截图截取图片识别图片文字文字写入粘贴板打包成exe程序加好友 &amp;amp;amp;amp;amp;amp;amp;amp;amp; 工程...
  • Python获取网页指定内容(BeautifulSoup工具的使用方法)

    万次阅读 多人点赞 2016-07-15 21:52:31
    Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包。 1 Pyhton获取网页的内容...
  • Android之Shader完全理解指南 EasySQL轻松上手的数据库框架 Android数据库使用指南(下) Android数据库使用指南(上) Python爬取网页数据 如何撸一个ArrayList Android相机屏幕适配 Tinker关于clean后准基包消失的...
  • 求用python获取新浪微博api接口的access token的具体代码 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下...
  • 下面小编就为大家分享一篇使用Python读取安卓手机的屏幕分辨率方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 因为学校要求要刷一门叫《包装...思路如下:手机屏幕投影到电脑上;截图并识别图片文字;调用百度来进行搜索;提取html关键字。环境配置:python3.6、第三方库:pyautogui、PIL、pytesseract、识别引擎tesseract-...
  • 用过Grasshopper 的童鞋都知道,在GH里识别犀牛空间里面的文字有点困难,除了用一些插件外,GH原生电池是没办法直接获取的,这里,小编教大家怎样用python代码去获取并加强文字功能。 编写代码之前先说一下犀牛空间...
  • Python爬虫获取拉勾网招聘信息

    千次阅读 2020-03-13 16:02:37
    李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五 这将产生一个流程图。: 链接 长方形 圆 圆角长方形 菱形 关于 Mermaid 语法,参考 这儿, FLowchart流程图 我们依旧会...
  • 苦于源代码难以看懂,随之想起用Python来获得图片然后文字识别,搞起来还真挺方便。 文字识别用到百度AI开放平台的文字识别,这个直接去百度AI开放平台搞一个就好。 首先安装好几个库 , 安装好就过 pip install ...
  • 准备工作 配置ChromeDriver 安装Selenium库 ...输入文字用send_keys() 方法,清空用clear(), 点击按钮用click() ...获取节点信息 ...获取属性—get_attribute() ...获取id、位置、标签名、大小
  • = -1: tu = [r['location']['left'], r['location']['top']] positions.append(tu) return positions #屏幕点击答题 def makeAnswer(positions): m = PyMouse() for p in positions: #m.move(p[0], p[1]) m.click(p...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,572
精华内容 5,428
关键字:

python获取屏幕文字

python 订阅