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 实现归并排序算法
Jun 05 Python
Python中for循环详解
Jan 17 Python
Python中的Numeric包和Numarray包使用教程
Apr 13 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Python实现KNN邻近算法
Jan 28 Python
Python语法分析之字符串格式化
Jun 13 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 Python
浅谈pytorch中的BN层的注意事项
Jun 23 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之对抗Web扫描器的脚本技巧
2008/10/01 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
jquery中动态效果小结
2010/12/16 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
python实现的希尔排序算法实例
2015/07/01 Python
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
深入理解Python3中的http.client模块
2017/03/29 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
python logging模块的使用
2020/09/07 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
梅西百货官网:Macy’s
2020/08/04 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
优秀员工获奖感言
2014/03/01 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
2015年双拥工作总结
2015/04/08 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle