-
发布一个网页截屏原代码,用于web截屏.图片直接传服务器
2008-11-14 09:31:00 -
asp.net 截屏 截取web页面 源代码
2013-02-22 11:38:58asp.net 截屏 截取web页面 using System.Drawing; //打开该页面 System.Diagnostics.Process.Start("IEXPLOREasp.net 截屏 截取web页面
using System.Drawing;
//打开该页面
System.Diagnostics.Process.Start("IEXPLORE.EXE", "http://localhost:56/Spacxxe.html");
System.Threading.Thread.Sleep(3000);
//截屏//创建并设置画布大小
System.Drawing.Image templateImage = new System.Drawing.Bitmap(1040, 700);
System.Drawing.Graphics templateG = System.Drawing.Graphics.FromImage(templateImage);
//new Point(200, 100)位于源(屏幕)左上角的x,y坐标
//new Point(0, 0)图片位于画布左上角的x,y坐标
//new Size(1440, 900)所截屏幕的大小
templateG.CopyFromScreen(new Point(200, 100), new Point(0, 0), new Size(1000, 900), CopyPixelOperation.MergeCopy);
//关闭ie
System.Diagnostics.Process[] pro = System.Diagnostics.Process.GetProcessesByName("IEXPLORE");
foreach (System.Diagnostics.Process ps in pro)
{
ps.Kill();
}
//存
templateImage.Save(@"E:\TEST\" + imgname + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); -
IE 浏览器截屏插件 web截屏插件 支持编辑(独立安装包)
2013-09-09 13:22:26用户IE截屏获取截屏数据并发送到服务器端,可应用于b/s系统的用户截屏,或web聊天,包含html 调用代码,增加对截取图片进行编辑(划线,写字等),增加遮罩颜色设置及截图提示。 更多信息请访问 ... -
webplayer中截屏
2014-04-03 14:14:43因为webplayer的限制,在webplayer上运行unity程序的时候,截屏并不像本地运行程序那样。基本思路是: 1、通过相应的接口把屏幕像素读取到内存,并且encode成png格式; 2、通过wwwform类把png格式的流由服务器接收...因为webplayer的限制,在webplayer上运行unity程序的时候,截屏并不像本地运行程序那样。基本思路是:
1、通过相应的接口把屏幕像素读取到内存,并且encode成png格式;
2、通过wwwform类把png格式的流由服务器接收,并且存在服务器上,做成链接,然用户下载;
unity官方相关的代码例子:
上面的代码段是用在unity程序中的:截取屏幕并生成png格式的流;访问服务器脚本,让改代码接收png格式的流。screenShotURL是wwwform访问的服务器脚本。 -
js截屏代码_服务端浏览器截屏
2020-11-21 20:00:44selenium是最广泛使用的开源Web UI自动化测试套件之一。本文中使用selenium的PythonSKD,通过代码段完成对selenium的操作。html2canvas是一个js库,可以实现在浏览器上截取网页或其一部分的“屏幕快照”。总体思路是...服务端浏览器截屏是结合 selenium + html2canvas 实现的通过在 Chrome 环境下生成图片。
selenium是最广泛使用的开源Web UI自动化测试套件之一。本文中使用selenium的PythonSKD,通过代码段完成对selenium的操作。
html2canvas是一个js库,可以实现在浏览器上截取网页或其一部分的“屏幕快照”。
总体思路是通过在服务端搭建chromedriver环境,利用selenium实现打开网页,运行js等一系列动作。然后通过注入html2convas的js代码,完成获取当前页浏览器任意dom元素图片。通过这种方式,可以在服务端截取任意网页区域。本文主要介绍在Linux环境下通过各种工具的组合,实现截取任意区域生成图片的方法,其他系统下方法类似。
环境准备
chromedriver 安装
首先需要安装浏览器内核环境,可以在官网https://chromedriver.chromium.org下载需要的版本。如果Linux没有中文字体,需要安装中文字体,避免网页乱码。
selenium 安装
pip install selenium
html2canvas
可以访问https://html2canvas.hertzen.com/查看html2canvas的使用方法
运行方法
初始化
加载浏览器环境,打开网页。如果chromedriver没有在系统PATH下,需要为webdriver.Chrome()添加executable_path参数,指定chromedriver路径。
import timefrom selenium import webdriver# chrome 参数chrome_options = webdriver.ChromeOptions()chrome_options.add_argument('--headless')chrome_options.add_argument('--no-sandbox')chrome_options.add_argument('--disable-dev-shm-usage')driver = webdriver.Chrome(chrome_options=chrome_options)# 加载网站driver.get("https://github.com/trending")time.sleep(1)
注入脚本
首先需要引入html2canvas的js库。这里通过创建一个script标签,追加到head中,实现html2canvas。
html2canvas = """var s=window.document.createElement('script');s.src='https://html2canvas.hertzen.com/dist/html2canvas.min.js';window.document.head.appendChild(s);"""driver.execute_script(html2canvas)ime.sleep(1)
然后根据实际情况,获取dom元素,生成dom元素的图片数据。这里使用了html2canvas的方法,当转换canvas成功后,向body中添加一个含图片数据的元素。该元素可以是任意元素,主要用于存储图片数据。由于html2canvas()函数无法立即将图片数据以返回值的形式传递到python的execute_script()函数。所以通过共享一个dom元素,实现图片数据传递。
buildImage = """html2canvas(document.querySelector('#side_nav')).then(canvas => {data = canvas.toDataURL('image/jpeg', 0.98); var input = document.createElement('input');input.setAttribute('type', 'text'); input.setAttribute('id', 'html2canvas_data'); input.setAttribute('value', data); document.body.appendChild(input)});return data;"""driver.execute_script(buildImage)time.sleep(1)
最后获取图片信息。读取上一步中生成的id为html2canvas_data元素中存储的图片数据。execute_script()函数的返回值即为图片的base64数据。
imageData = """return document.getElementById('#html2canvas_data').getAttribute('value');"""data = driver.execute_script(imageData)
退出chrome
driver.quit()
图片生成
上一步中,最后一个js执行的返回结果为图片的base64值。通过base64解码,便可以得到图片。这里需要注意的是返回值中的base64结果中会包含一段图片信息数据:data:image/jpeg;base64,。解码时需要先移除,再进行转码。
注意
- 执行每一条js后,需要增加延时,保证js执行成功。也可以使用selenium提供的显性等待函数WebDriverWait,完成监听元素加载状态。
- 加载html2canvas.js库时,若网站设置了安全策略,如跨域、域限制等策略,需要想方法绕过,再加载js
- 实际应用时,可将js下载到内网,加快js加载速度
- 实际应用时,可能会出现driver.quit()后,chromdriver进程仍然存在,需要手动kill
集成Docker
将上述所有需要的软件放入docker中。当有新的环境需要时,不必再次安装,同时也可以避免环境差异导致的意外的问题。
如果业务有需求,将上述图片生成方法,结合自身业务需求,在Docker中完成业务实现,从而提供一个可以生成符合业务需求的浏览器截屏服务。例如建立一个http服务,通过传入网页地址与对应的dom元素,返回对应dom元素的图片数据。
下面是基于已有的chromedriver镜像robcherry/docker-chromedriver,制作的一个简单的可以运行浏览器截屏程序的环境。在chromedriver的基础上,添加字体库,安装selenium。
FROM robcherry/docker-chromedriverCOPY chinese /usr/share/fonts/chineseRUN curl https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py && python /tmp/get-pip.py && pip install selenium && mkfontscale && mkfontdir && fc-cache -fvCMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf"]
其中chinese是字体目录,可以使用Windows系统下的字体目录中的字体文件。然后生成镜像:
docker build -t demo/html2canvas .
最后将上面的python程序,挂载到容器内,在容器内运行,查看效果
关于360技术:360技术是360技术团队打造的技术分享公众号,每天推送技术干货内容,更多技术信息欢迎关注“360技术”微信公众号
-
asp.net截屏功能实现截取web页面
2021-01-02 18:53:14本文实例展示了asp.net截屏功能实现截取web页面的方法,代码简洁易懂,分享给大家供大家参考。 具体实现代码如下: using System.Drawing; //打开该页面 System.Diagnostics.Process.Start(IEXPLORE.EXE, ... -
Java+Selenium框架:实现web自动化页面截屏
2019-04-14 16:58:56需求:先假设UI自动化执行case异常或是错误,需要web页面截图,留下证据提交bug;代码如何实现? 1、场景:先不管case执行结果如何,反正就是执行完截屏就OK了。先给截图名称写一个随机文件名方法: public ... -
牛牛截图插件java实例_关于解决牛牛WEB截屏插件无法再jq1.9+以上执行的问题
2020-12-30 02:01:07最近在做一个留言功能,其中有一个小工具是截屏功能,类似于QQ的截图功能,但是仅限在web内部,也可以说在浏览器内部即可。初步想法肯定是不会去现写,于是在搜索上找了许多,无奈于不想自己写,只能用别人的控件,... -
利用photoshop查看颜色的web代码
2013-12-04 09:59:361、先通过截屏工具把屏幕上的图像记载下来,然后再用photoshop打开 2、使用“吸管”工具,查看RGB是什么值 3、切换显示颜色的方式 请查看附件,里面有详细说明 查看WEB颜色 -
从零开始用electron手撸一个截屏工具的示例代码
2020-12-12 01:39:34最近在尝试利用 electron 将一个 web 版的聊天工具包装成一个桌面 APP。作为一个聊天工具,截屏可以说是一个必备功能了。不过遗憾的是没有找到很成熟的库来用,也可能是打开方式不对,总之呢没看到现成的,于是就想... -
elixir_authorization_tutorial:此存储库是Phoenix应用程序中有关授权的截屏视频的配套代码-源码
2021-02-05 00:01:09关于“在Phoenix Web应用程序中使用基于滚动访问控制(RBAC)的授权实施”的仓库 此回购代码是的截屏视频的配套代码。 -
eattheblocks:Eat The Blocks的源代码,Ethereum Dapp开发人员的截屏视频-源码
2021-02-05 04:36:08EaTheBlocks EatTheBlocks的区块链教程。 了解如何在以太坊和Solidity Smart合约上构建去中心化应用程序(Dapps) ...Web3 松露 DeFi(去中心化金融) 组织 YouTube: screencast文件夹 课程:其他文件夹 培训班 -
android 截屏生成图片_服务端浏览器截屏
2021-01-06 02:33:53selenium是最广泛使用的开源Web UI自动化测试套件之一。本文中使用selenium的PythonSKD,通过代码段完成对selenium的操作。html2canvas是一个js库,可以实现在浏览器上截取网页或其一部分的“屏幕快照”。总体思路是... -
桌面应用截屏共享_使用Scrimba查看和共享编码截屏
2020-06-15 08:08:35免费的YouTube视频为初学者提供了大量有关Web开发的教程 。 但是,由于您可以快速记录和发布自己开发的摘录或功能,因此截屏视频变得更加流行 。 免费的应用程序Scrimba是共享代码片段并查找他人记录的示例的一种... -
镜像浏览器_服务端浏览器截屏
2020-10-31 13:35:28selenium是最广泛使用的开源Web UI自动化测试套件之一。本文中使用selenium的PythonSKD,通过代码段完成对selenium的操作。html2canvas是一个js库,可以实现在浏览器上截取网页或其一部分的“屏幕快照”。总体思路是... -
06_Python3.6+selenium2.53.6自动化测试_设置窗口大小最大化截屏退出
2019-08-07 12:46:58二、代码 #coding:utf-8 ''' 1设置浏览器窗口大小 2浏览器最大化 3截屏并保存文件 4退出浏览器 ''' #导入依懒的模块 from selenium import webdriver as web import time #启动浏览器 dr = web.... -
PHP + phantomJS实现网站截屏
2019-07-02 18:42:22exec("G:/phpstudy/WWW/destoon/api/a/cache/web/phantomjs.exe ./get.js http://www.baidu.com ./img/example.png"); js代码: var page = require('webpage').create(), system = require('system'); var ur... -
PHP 之PHP + phantomJS实现网站截屏
2019-06-15 10:41:00exec("G:/phpstudy/WWW/destoon/api/a/cache/web/phantomjs.exe ./get.js http://www.baidu.com ./img/example.png"); js代码: var page = require('webpage').create(), system = require('system');... -
小技巧!H5使用Html2Canvas实现自动截屏(下)
2020-12-06 11:49:29上文写到使用html2Canvas实现截屏。上次留了一个问题,如果...怎么体现通用性(一段代码解决大多数场景)? 2、修改web中间件的上传大小限制。 存在问题:对web中间件依赖增强,如果需要跨中间件则非常麻烦,通用性太 -
java Servlet 接收并保存TScrnCut截屏及扫描插件上传图像源码
2014-01-14 12:17:00使用Java Servlet保存 TScrnCut截屏插件及Web扫描插件上传的图像,如需保存为png请修改图像后缀,使用javascript设置插件返回图像格式 服务器端Servlet代码如下: package TscrnCut; import sun.misc.BASE64... -
DDGScreenShot — 复杂屏幕截屏(如view ScrollView webView wkwebView)
2018-05-09 13:17:00最近有这么一个需求,分享页面,分享的是web订单截图,既然是web 就会有超出屏幕的部分, 生成的图片还要加上我们的二维码,这就涉及到图片的合成了。 有了这样的需求,就是各种google.也算解决了自己的需求,另外,... -
web前端助手-FeHelper
2021-02-03 13:27:06一个功能齐全的谷歌插件:字符串解码,json格式化,代码压缩,截屏,取色器等等。 -
phantomJS web自动化
2018-03-24 16:43:35phantomJS 官网http://phantomjs.org/,英文的,phantomJS为4个方面提供解决方案:(1)web页面‘无头’测试【大意就是像浏览器一般,但是没有用户界面,去运行你的js代码】(2)站点页面截屏,就像pc上的截屏一样,... -
心塞啊,为什么我的截屏或错位,有大神帮我看看嘛?
2017-04-22 10:10:46我自己写了一个winform的web浏览器,想实现截图功能,就像是这样:  ![图片说明]... -
WEB前端助手(FeHelper)
2018-12-07 09:14:34FE助手:包括JSON格式化、二维码生成与解码、信息编解码、代码压缩、美化、页面取色、Markdown与HTML互转、网页滚动截屏、正则表达式、时间转换工具、编码规范检测、页面性能检测、Ajax接口调试、密码生成器、JSON... -
python web框架企业实战详解(第六期)\第四课时-webpy&django
2016-03-13 01:12:47选择自己喜欢的IDE搭建各自的webpy和django环境,最后截屏就作业。 PyCharm PyCharm是由JetBrains打造的一款Python IDE。 PyCharm具备一般 Python IDE 的功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示... -
WebUI自动化测试框架Dagger.zip
2019-07-18 00:51:08Dagger十分适合中小型团队从零开始WebUI自动化,这样的话,只须要直接下载整个Dagger代码就行了,Dagger本身都已经配置好了,下载后看一下使用文档就可以直接开始写用例了 也可以把Dagger打成Jar包,导入已有的自动... -
Web端编写(五)——会议文件的列表
2015-04-15 13:03:13到了这一步,就很简单了,...可恶的腾讯,可恶的华为,华为没有硬件截屏,软件截屏对全屏应用截不完,为了截屏装个腾讯管家,又偷偷装应用宝。 继续,上页面html代码。 查看会议议程
-
【Python-随到随学】FLask第二周
-
Python小游戏源码-外星人入侵游戏源码
-
【动态规划】Lintcode 110. 最小路径和
-
SLAM导航机器人零基础实战系列-第1章_Linux基础
-
温室大棚冬季增温方案,适合自己的才最好
-
802.11a标准官方中文版
-
go的优势--链表与结构体使用
-
洛谷P1914 小书童——凯撒密码经典解法
-
一天学完MySQL数据库
-
2021最新影视小程序-带详细安装教程.rar
-
Python小游戏源码-坦克大战游戏源码
-
怎么修改windows系统的默认编码
-
Python脚本项目源码-简单的端口扫描工具
-
golang语言中map的初始化及使用
-
微信语音demo
-
Unity ILRuntime框架设计
-
linux基础入门和项目实战部署系列课程
-
Caché 变量大全
-
Python小游戏源码-滑雪者游戏源码
-
SLAM导航机器人零基础实战系列-第6章_SLAM建图与自主避障导航.pdf