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 list中append()与extend()用法分享
Mar 24 Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 Python
Python编写电话薄实现增删改查功能
May 07 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
python 以16进制打印输出的方法
Jul 09 Python
Python企业编码生成系统总体系统设计概述
Jul 26 Python
详解用python计算阶乘的几种方法
Aug 14 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
python3读取autocad图形文件.py实例
Jun 05 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
python归并排序算法过程实例讲解
Nov 04 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 fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
浅谈PHP的反射机制
2016/12/15 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
替换python字典中的key值方法
2018/07/06 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
PHP笔试题
2012/02/22 面试题
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
《守株待兔》教学反思
2014/03/01 职场文书
出差报告格式模板
2014/11/06 职场文书
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS