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中将单词首字母大写的capitalize()方法
May 18 Python
Python使用ntplib库同步校准当地时间的方法
Jul 02 Python
Python使用xlwt模块操作Excel的方法详解
Mar 27 Python
Python使用Pickle库实现读写序列操作示例
Jun 15 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
Python利用字典破解WIFI密码的方法
Feb 27 Python
深入浅析Python 函数注解与匿名函数
Feb 24 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
浅谈Python3中print函数的换行
Aug 05 Python
python获取带有返回值的多线程
May 02 Python
python区块链持久化和命令行接口实现简版
May 25 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实现把数组按指定的个数分隔
2014/02/17 PHP
php实现用于验证所有类型的信用卡类
2015/03/24 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Django中间件工作流程及写法实例代码
2018/02/06 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
Java如何支持I18N?
2016/10/31 面试题
后进生转化工作制度
2014/01/17 职场文书
支教自我鉴定
2014/01/18 职场文书
会议活动邀请函
2014/01/27 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
实习单位鉴定评语
2014/04/26 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
2015学校年度工作总结
2015/05/11 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL