Python实现屏幕截图的代码及函数详解


Posted in Python onOctober 01, 2016

废话不多说,先给大家看下python实现屏幕截图的代码,具体代码如下所述:

from selenium import webdriver
import time
def capture(url, save_fn="capture.png"):
browser = webdriver.Firefox() # Get local session of firefox
browser.set_window_size(1200, 900)
browser.get(url) # Load page
browser.execute_script("""
(function () {
var y = 0;
var step = 100;
window.scroll(0, 0);
function f() {
if (y < document.body.scrollHeight) {
y += step;
window.scroll(0, y);
setTimeout(f, 50);
} else {
window.scroll(0, 0);
document.title += "scroll-done";
}
}setTimeout(f, 1000);
})();
""")
for i in xrange(30):
if "scroll-done" in browser.title:
break
time.sleep(1)
browser.save_screenshot(save_fn)
browser.close()
if __name__ == "__main__":
capture(https://3water.com)

Pythony实现屏幕截屏的函数如下所述:

# -*- coding: cp936 -*- 
import time,Image 
import os, win32gui, win32ui, win32con, win32api 
def window_capture(dpath): 
''''' 
截屏函数,调用方法window_capture('d:\\') ,参数为指定保存的目录 
返回图片文件名,文件名格式:日期.jpg 如:2009328224853.jpg 
'''
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] 
#print w,h #图片大小 
saveBitMap.CreateCompatibleBitmap(mfcDC, w, h) 
saveDC.SelectObject(saveBitMap) 
saveDC.BitBlt((0,0),(w, h) , mfcDC, (0,0), win32con.SRCCOPY) 
cc=time.gmtime() 
bmpname=str(cc[0])+str(cc[1])+str(cc[2])+str(cc[3]+8)+str(cc[4])+str(cc[5])+'.bmp'
saveBitMap.SaveBitmapFile(saveDC, bmpname) 
Image.open(bmpname).save(bmpname[:-4]+".jpg") 
os.remove(bmpname) 
jpgname=bmpname[:-4]+'.jpg'
djpgname=dpath+jpgname 
copy_command = "move %s %s" % (jpgname, djpgname) 
os.popen(copy_command) 
return bmpname[:-4]+'.jpg'
#调用截屏函数 
window_capture('d:\\')

以上所述是小编给大家分享的Python实现屏幕截图的代码及函数详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此有非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
在Python编程过程中用单元测试法调试代码的介绍
Apr 02 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
Python 中 list 的各项操作技巧
Apr 13 Python
Pycharm学习教程(2) 代码风格
May 02 Python
Django自定义分页与bootstrap分页结合
Feb 22 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
Python FTP文件定时自动下载实现过程解析
Nov 12 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
Feb 28 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
python编写实现抽奖器
Sep 10 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 Python
Python爬取APP下载链接的实现方法
Sep 30 #Python
Python脚本实现12306火车票查询系统
Sep 30 #Python
Python ldap实现登录实例代码
Sep 30 #Python
python之Socket网络编程详解
Sep 29 #Python
python 排序算法总结及实例详解
Sep 28 #Python
一些常用的Python爬虫技巧汇总
Sep 28 #Python
Python三级目录展示的实现方法
Sep 28 #Python
You might like
聊天室php&amp;mysql(二)
2006/10/09 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
小程序实现密码输入框
2020/11/16 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
python杀死一个线程的方法
2015/09/06 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
pandas 时间格式转换的实现
2019/07/06 Python
NumPy中的维度Axis详解
2019/11/26 Python
基于Python的OCR实现示例
2020/04/03 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
2020/12/03 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
商场拾金不昧表扬信
2014/01/13 职场文书
社区党务公开实施方案
2014/03/18 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
2014年加油站工作总结
2014/12/04 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers