1. FlyPython首页
  2. 网络安全
  3. Hacking with Python

第三课 使用Python进行屏幕截图

第三课 使用Python进行屏幕截图

第三课 使用Python进行屏幕截图

《Hacking with Python》系列课程第三课,今天的主题是用Python进行屏幕截图并上传到FTP。首先我们要介绍一下wxPython库。

wxPython介绍

第三课 使用Python进行屏幕截图

wxPython是一个创建桌面GUI应用的跨平台工具包(toolkit)

今天我们使用它来进行截图操作,代码如下:

import wx
w = wx.App() 
screen = wx.ScreenDC()
size = screen.GetSize()
bmap = wx.Bitmap(size[0],size[1])
memo = wx.MemoryDC(bmap)
memo.Blit(0,0,size[0],size[1],screen,0,0)
bmap.SaveFile("grabbed.png", wx.BITMAP_TYPE_PNG)

我们创建了一个屏幕对象,并把当前屏幕保存到保存到位图中。下一步,我们会有通过FTP保存到服务器的需求,先介绍一下使用ftplib库。

ftplib介绍

ftplib是Python自带的FTP 协议客户端,不需要安装。

文档:https://docs.python.org/zh-cn/3/library/ftplib.html

我在本地开启了一个FTP服务器,现在使用ftplib进行连接。

下图可以看到,我们连接并列出了FTP服务器上的文件

第三课 使用Python进行屏幕截图

根据文档,我们需要通过storbinary函数往FTP服务器上传文件,代码如下:

sess_ = ftplib.FTP("localhost", "flypython", "flypython")
file_ = open("grabbed.png", "rb")
sess_.storbinary("STOR grabbed.png", file_)
file_.close()
sess_.quit()

完整的截屏上传程序

最后我们把截图和上传FTP连起来,代码如下:

1 import wx
2 import os
3 import ftplib
4
5 w = wx.App()
6 screen = wx.ScreenDC()
7 size = screen.GetSize()
8 bmap = wx.Bitmap(size[0],size[1])
9 memo = wx.MemoryDC(bmap)
10 memo.Blit(0,0,size[0],size[1],screen,0,0)
11
12 bmap.SaveFile("grabbed.png", wx.BITMAP_TYPE_PNG)
13
14 sess_ = ftplib.FTP("localhost","flypython", "flypython")
15 file_ = open("grabbed.png", "rb")
16 sess_.storbinary("STOR grabbed.png", file_)
17
18 file_.close()
19 sess_.quit()

运行效果:

第三课 使用Python进行屏幕截图

截图文件已经成功上传

第三课 使用Python进行屏幕截图

此系列课程代码: https://github.com/flypythoncom/Hacking-with-Python

关注我们的微信公众号,获取最新的教程信息

此图像的alt属性为空;文件名为006tNbRwly1gai7aeyheij3076076dgb.jpg

原创文章,作者:flypython,如若转载,请注明出处:http://flypython.com/video/414.html