-
2019-05-22 16:49:48
需要用到的工具是selenium,
引用下百度的解释:
Selenium [1] 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
demo代码如下,python写的
import os from selenium import webdriver c=0 delay=1 #网页打开后停留时间,单位是秒 path=os.getcwd()+'/html_dir' files=os.listdir(path) num=len(files) for c in range(num): fn=str(c)+'.html' tmpurl='file://{path}/{mapfile}'.format(path=path,mapfile=fn) browser=webdriver.Chrome() #browser.set_window_size(960,540) #可设置打开网页窗口大小 browser.get(tmpurl) time.sleep(delay) browser.save_screenshot('./pic_of_html/'+str(c)+'.png') browser.quit()
上面的代码实现的是:加入在html_dir文件夹下有名称为1.html, 2.html , 3.html……等总计num个网页文件;使用Chrome浏览器加载然后截图保存到pic_of_html文件夹下,图片命名为:1.png, 2.png ……
除了安装好selenium外,还需要安装浏览器的驱动,比如我这用的是Chrome浏览器,首先需要确定自己使用的Chrome版本,然后下载对应的Chrome 网页驱动。
更多相关内容 -
批量网页截图软件C#开发
2011-08-10 14:45:49批量网页截图软件 该工具用于批量将网页抓取并生成png图片,图片保存在软件目录下的SaveImg目录下,并按照年-月来分子文件夹。 例: SaveImg/2011-8/1.png 工具使用说明 1、点击配置站点按钮,显示当前已经配置的... -
全设备 全场景 全自动:批量网页截图的十大出图方式及应用场景—— 优爱酷批量长网页整页截图系统
2020-05-25 08:29:57批量网页截图的十大出图方式及应用场景 批量网页截图出图方式及应用场景: 1.【#长截图#】:自动滚动滚动条逐屏加载实现完整长文章截图、整体设计效果截图、新闻舆情取证截图等 2.【#可视截图#】:滚动到某个位置后...批量网页截图的十大出图方式及应用场景 批量网页截图出图方式及应用场景:
1.【#长截图#】:自动滚动滚动条逐屏加载实现完整长文章截图、整体设计效果截图、新闻舆情取证截图等
2.【#可视截图#】:滚动到某个位置后截取可视内容为图片,如淘宝客优惠券、会员卡、二维码、条形码的截图等;
3.【#缩略图#】:宝贝主图、分类列表等展示用途使用的指定大小的缩略图;
4.【#超高分段截图#】:适合前端网页加载等;
5.【#手机/Pad截图#】:仿真模拟任何智能设备,看得见截的到;
6.【#裁图切图#】:掐头去尾、定距裁剪;
7.【#浏览器外观截图#】:保留浏览器外观截图,保留原网址出处和网页标题,可作公证证据;
8.【#先点击后截图#】:先模拟人工自动单击或双击再截图,适合需要点击后才能看到的内容的截图;
9:【#科学截图#】:通过代理设置科学访问海外网页;
10:【#指定尺寸截图#】:针对智能响应的网页大小受设备尺寸限制无法截取想要内容的情况
软件免费下载链接地址:
① GitHub仓库下载:
O网页链接
② 百度云盘 :(如提示不存在,请按 F5 刷新页面)
链接:O网页链接 密码:tduk词条标签:
批量截图、 网页生成JPG图片、 批量截屏工具、 WebShot、批量网页截图软件、 网址批量截图工具、 网页批量自动截图工具、 网站截图助手
-
如何实现批量截取整个网页完整长截图,批量将网页保存成图片web2pic/webshot/screencapture/html2picture
2020-12-08 23:29:04如何实现批量截取整个网页完整长截图,批量将网页保存成图片web2pic/webshot/screencapture【困扰?疑问?】:您是否正受到:如何将网页保存为图片的困扰?网页很高很长截图截不全怎么办?怎样才能完整截图?有很多...如何实现批量截取整个网页完整长截图,批量将网页保存成图片web2pic/webshot/screencapture
【困扰?疑问?】:
您是否正受到:如何将网页保存为图片的困扰?网页很高很长截图截不全怎么办?怎样才能完整截图?有很多淘宝或天猫、京东店铺爆款商品宝贝需要截图,那么多嫩不能批量截图?网红微信公众号文章、名人微博文章很好,如何保存成图片收藏下来或者自己加工成高流量文章?网页设计师看到很有设计感的网页或者感兴趣的网页如何批量完整保存成图片?
这里推荐一款批量截图软件:
使用方法,以txt批量为例,操作方法如下:
1、 将需要截图的网址的链接一行一个保存到记事本里
2、 打开下载好的软件,并将包含链接的记事本文件(weblinks.txt)拖拽到软件的地址栏
3、 点击【截图】按钮 (或回车)开始批量截图
4、 截图完成后的图片
javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...
修改css的(屏蔽)overflow: hidden;实现浏览器能把网页全图保存成图片
摘要: 1.项目需要,需要对网页内容“下载”保存成全图片 2.QQ浏览器等主流浏览器都支持这种下载保存功能 3.项目需要场景:编写好的项目维护文档,放在服务器上.如果是txt不能带图片可视化,如果wo ...
selenium(6)-截取完整页面和指定元素并保存为图片
截图操作 截取整个页面 截取指定元素 只有这2个方法 比较简单,见下图代码 from selenium import webdriver driver = webdriver.Chrome(" ...
selenium,phantomJS,python整合的一个小示例,把某个网页画面整体保存成图片格式。
本篇将使用selenium,phantomJS和python制作的一个示例,把某个网页整体保存为一个图片文件. 简单介绍下,selenium是一个开源的用于测试web程序的工具,当然,如果你要执行一些 ...
C# 整个网页保存成图片
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
将网页中的html代码的table保存成word文件
1.后台代码: string nowtime = DateTime.Now.ToString("yyyy-MM-dd"); Response.Clear(); Response.B ...
截图还在使用QQ的Ctrl + Alt + A 截图?还不会网页长截图?
截图还在使用QQ的Ctrl + Alt + A 截图?还不会网页长截图? 手机自带快捷键,常常使用组合键进行快速截图编辑发好友.保存等,但是貌似到了电脑截图就出现了一大堆拍屏幕党,不少人需要打开微 ...
Python静态网页爬取:批量获取高清壁纸
前言 在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤 一般地,我们去网上批量打开壁纸的时候一般操作如下: 1.打开壁纸网页 2.单击壁纸图(打开指定壁纸的页面) 3.选择分辨率(我 ...
IOS批量截取视频截图 UIImage mp4 IOS Video
IOS批量截取视频截图 //生成截图 NSString *path = [NSHomeDirectory() stringByAppendingString:@"/Documents&quo ...
随机推荐
sqlmap http头注入的一个技巧
sqlmap.py -u "url" --host * --thread=1 --batch -v 1 --delay=0.7 --dbms mysql --current-d ...
cocos2d ccitemimage
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" class H ...
Android的IPC机制(一)——AIDL的使用
综述 IPC(interprocess communication)是指进程间通信,也就是在两个进程间进行数据交互.不同的操作系统都有他们自己的一套IPC机制.例如在Linux操作系统中可以通过管道. ...
css遇到的那些坑——浏览器默认样式设置
今天自己写css样式,其中用到了
- 标签,设置了一系列效果后运行,发现位置与设置有出入.chrome上打开检查项,发现
- 标签的styles底部多了以下一段: ul, ...
Windows Firewall Setting
If our web site hosted on web server canot be accessed by other computer by public network, one of t ...
.NET平台开源项目速览(20)Newlife.Core中简单灵活的配置文件
记得5年前开始拼命翻读X组件的源码,特别是XCode,但对Newlife.Core 的东西了解很少,最多只是会用用,而且用到的只是九牛一毛.里面好用的东西太多了. 最近一年时间,零零散散又学了很多,也 ...
mariadb:SQL日常使用总结
1.关联删除 DELETE T_Base_Resource_Action FROM T_Base_Resource_Action INNER JOIN T_Base_Resource ON T_Ba ...
ie7ajax 跨域 no transport 解决办法
客户端js
- 标签,设置了一系列效果后运行,发现位置与设置有出入.chrome上打开检查项,发现
-
使用puppeteer 进行批量网页截图
2019-06-21 14:51:57每一行用\t分割后 前面是域名后面是url 域名用来md5后作为截图名 pageSize控制一次最多打开多少个页面 防止网页过多占用内存过多 配置里的'--proxy-server=socks5://127.0.0.1:1080' 是用来走本地小飞机代理的 ...数据来源为一个txt文件
每一行用\t分割后 前面是域名后面是url 域名用来md5后作为截图名
pageSize控制一次最多打开多少个页面 防止网页过多占用内存过多
配置里的'--proxy-server=socks5://127.0.0.1:1080' 是用来走本地小飞机代理的
const puppeteer = require('puppeteer'); var fs = require('fs'); var readline = require('readline'); const crypto = require('crypto'); var file = '/test/snap.txt'; //最多多少个页面 const pageSize = 50; var date = new Date(); var startTime = date.getTime(); readFileToArr(file ,async function (data){ console.log('本次需要截图[' + data.length+']条') console.log('开始执行:'+startTime); if(data.length>0){ snp(data).then(() => { console.log('执行清空文件操作'); fs.access(file, fs.constants.F_OK, (err) => { console.log(`${file} ${err ? '不存在' : '存在'}`); var ws1 = fs.createWriteStream(file, 'utf-8'); ws1.write(''); ws1.end(); console.log(`${file}` +' 已清空'); }); }).catch(function (err) { console.log(err); });; } }); async function snp(arr){ const config = { ignoreHTTPSErrors:true, defaultViewport:{width:1920,height:1080}, args: [ '--no-sandbox','--proxy-server=socks5://127.0.0.1:1080' ], headless: true } const browser = await puppeteer.launch(config); var that = this; while(arr.length>0){ var some; if(arr.length >pageSize){ some = arr.splice(0,pageSize); }else{ some = arr.splice(0,arr.length); } var length = some.length; var a = []; for (let j = 0; j < length; j++) { if(some[j] === '') continue; var line = some[j].split('\t'); if(line.length !==2 ){console.log('数据不全:' + some[j]);continue;} var domain = line[0]; var url = line[1]; var page = await browser.newPage(); //默认30S超时 //page.setDefaultNavigationTimeout(3000); try{ await page.goto(url); console.log('已打开:'+url); page.on('dialog', async dialog => { await dialog.accept(); }); }catch(err){ console.log('打开网页出错:'+err); } a.push(page); } //等待时间 可调整 //await a[0].waitFor(1 * 1000); for (i = 0; i < length; i++) { if(some[i] === '') continue; var line = some[i].split('\t'); if(line.length !==2 ){console.log('数据不全:' + some[i]);continue;} var domain = line[0]; var url = line[1]; var fileName = getMD5(domain) + '.png'; try { await a[i].screenshot({ path: '/test/snapshot/'+fileName }); console.log('截图成功: '+domain); await a[i].close(); } catch (e) { console.log('截图出错: '+e) } } } await browser.close(); var endTime = new Date().getTime(); console.log('执行结束:'+endTime); console.log('本次执行时间:' + (endTime-startTime)/1000 + 's'); } //读取文件 function readFileToArr(fReadName,callback){ var fRead = fs.createReadStream(fReadName); var objReadline = readline.createInterface({ input:fRead }); var arr = new Array(); objReadline.on('line',function (line) { arr.push(line); //console.log('line:'+ line); }); objReadline.on('close',function () { // console.log(arr); callback(arr); }); } //获取md5值 function getMD5(data) { // 加入字符编码 var md5 = crypto.createHash('md5').update(data, 'utf-8').digest('hex'); return md5; }
目前还可以优化的地方:
当前流程是依次打开网页,等待当前网页加载完成后再去打开下一个网页,若某一个网页打开较慢或打不开,则会一直等待到超时。
可以改为调用goto后不等待,并行的打开网页,大大减少打开网页过程中花费的时间。
第二版
由于第一版 虽说是一次打开多个标签页了,但是实质上还是和串行一个个打开没有区别,我在page的load事件上也没有找到能保存当前页面上下文并使其在后面可选择使用的好办法。
所以不如直接使用串行 由于截图任务要的是准确第一 速度第二 所以改为串行也未尝不可
主要改动的地方就是snp()方法 并且删掉了pageSize这个常量
async function snp(arr){ const config = { ignoreHTTPSErrors:true, defaultViewport:{width:1920,height:1080}, args: [ '--no-sandbox','--start-maximized' ], headless: false } const browser = await puppeteer.launch(config); var page = await browser.newPage(); for(let i=0;i<arr.length;i++){ if(arr[i] === '') continue; var line = arr[i].split('\t'); if(line.length !==2 ){console.log('数据不全:' + arr[i]);continue;} var domain = line[0]; var url = line[1]; var fileName = getMD5(domain) + '.png'; await page.goto(url,{waitUntil: ['networkidle0']}).then(()=>{ console.log('已打开:'+url); }).catch( err =>{ console.log('打开网页出错:' + url); }); page.on('dialog', async dialog => { await dialog.accept(); }); await page.screenshot({path: '/Users/rzx/Desktop/snapshot/'+fileName}); console.log('截图成功: '+domain); } await page.close(); await browser.close(); var endTime = new Date().getTime(); console.log('本次执行时间:' + (endTime-startTime)/1000 + 's'); }
- 为什么使用--start-maximized这个参数:有些网页在最大化下和它默认大小下 截出来的图片不一样 默认尺寸下可能会出现拼接的情况
- await page.goto(url,{waitUntil: ['networkidle0']}) 此处waitUntil的作用:有些网页 打开后会继续请求js 做出动画或改变样式 添加此参数的意思是直到没有任何网络连接 视为跳转成功。可以有效避免部分网页刚打开 load事件触发了就截图 截出的图不完整
-
python 自动批量打开网页的示例
2020-09-19 14:11:17今天小编就为大家分享一篇python 自动批量打开网页的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
python实现网页截图
2021-03-17 03:25:21url)12 driver.maximize_window()13 14 print(dir(driver))15 16 time.sleep(1)17 18 driver.get_screenshot_as_file('D:\\11.jpg')19 print("%s:截图成功!!!" %picture_url)20 driver.close()21 ... -
Python静态网页爬取:批量获取高清壁纸
2020-12-03 12:46:59前言在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤一般地,我们去网上批量打开壁纸的时候一般操作如下:1、打开壁纸网页2、单击壁纸图(打开指定壁纸的页面)3、选择分辨率(我们要下载高清的图... -
网页批量截图工具
2013-12-15 18:07:31支持网页批量截屏,只需将连接放置工具,就可实现批量截图功能 -
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2020-10-16 14:48:31主要介绍了Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能,结合实例形式分析了IECapt的下载、安装及截图、生成缩略图相关使用技巧,需要的朋友可以参考下 -
Python自动截图html页面
2020-12-03 12:46:59需求:实现自动截图html页面:准备:1、安装selenium1)pip install selenium2) 通过pycharm解释器图形化安装File->settings->project interpreter2、安装chromedriver1)pip install chromedriver2) 通过... -
批量保存网页截图htmlto
2010-05-25 17:10:22汉化批量截图网站,更方便大家批量的保存网页 -
python动态网页批量爬取
2020-12-30 22:41:12四六级成绩查询网站我所知道的有两个:学信网...我使用的是学信网,好了,网站截图如下: 网站的代码如下: <form method=get name=form1 id=form1 action=/cet/query> <tr><td align=right>准考 -
如何实现批量截取整个网页完整长截图?内容很多很高浏览器看不全Chrome插件崩溃无需安FireShot,优爱酷批量...
2019-05-11 22:59:45优爱酷批量长网页整页截图系统软件是一款全球首创逐屏加载技术,智能实现自动滚动浏览器滚动条、逐屏加载页面、并将完整的整个网页保存为图片格式(png,gif,bmp,jpg)、PDF格式的一款批量网页截图效率工具,支持 txt... -
[宜配屋]听图阁
2021-01-28 21:43:35本文实例为大家分享了python自动网页截图并裁剪图片的具体代码,供大家参考,具体内容如下代码:# coding=utf-8import timefrom selenium import webdriverfrom selenium.webdriver.chrome.options import Options... -
如何使用Linux命令行和PHP脚本对网站(HTML页面)截图
2021-04-25 11:18:17Wkhtmltoimage是一个非常有用的应用程序,...本文将帮助您使用PHP脚本和Linux命令行进行网页截图。第1步:在Linux上安装wkhtmltoimage从下载wkhtmltoimage 谷歌代码,使用以下步骤在Linux系统上安装。# cd /opt# w... -
python开发网页应用批量提取导出核酸结果
2022-04-13 00:56:48为方便统计同学们的“健康云”核酸检测结果,python来快速实现一个界面清新交互友好的核酸检测结果批量解析工具。 -
Python网页自动截图
2017-08-04 14:20:57Python网页自动截图,你值得拥有~ -
批量打开网页
2013-12-09 13:39:34可以批量打开网页,一次性打开很多网页,只要你的电脑够好。 -
批量快速截图方法(snipaste)
2020-12-28 21:00:15在写用户手册的时候,难免要用到软件页面截图,但是每次要选取后按截屏并保存,耗时耗力,摸索了以下的方法可以快速批量截取屏幕: 1、运行snipaste软件。 2、设置snipaste的属性。 3、按“F1”键。触发截屏功能 4、... -
一行代码实现 Python+selenium 批量截取网页,重要代码仅一行
2022-05-05 10:40:12本案例将通过 Python + selenium 实现对网页的批量截图,案例即属于Python爬虫应用,也属于Python运维实战,大家可以重点学习思路。 -
电脑如何截图整个网页并保存?实现整个网页截图的最简单办法
2021-06-25 08:21:46你现在的位置:首页>PC>笔记本电脑受限于显示器的尺寸大小,...一般情况下,大家进行网页截图的时候都会用QQ自带的截图工具一张一张地截图,再拼凑起来。这种方法一来不方便,二来效率很低。那么如何才能让电... -
命令行下的2款网页截图工具推荐
2021-08-02 01:23:32有时我们可能需要每天定时对某些网页截图,或者批量地对多个URL截图,这时这些的需要手工操作的截图工具或插件就有一点不够用了。不过幸运的是,有一些免费的可以通过命令行方式操作的网页截屏软件或浏览器插件可以... -
风越网页表单批量自动填写工具 v5.02.zip
2019-07-15 17:50:00风越网页表单批量自动填写工具可自动分析网页中表单已经填写的内容,保存为填表规则,以后填表时,只需调用此规则即可。 风越网页表单批量自动填写工具支持的页面填写类型、控件...风越网页表单批量自动填写工具截图 -
php自动获取文件夹内视频文件批量生成第一帧截图
2020-05-29 11:27:27video.php,自动读取所设定文件夹下所有视频文件,并批量生成第一帧截图,并压缩图片等方法封装。在平常做视频处理业务过程中封装的一些好用的方法,文件中每个方法都有做说明,简单易懂,现在共享出来方便大家使用 -
梦雪网页截图-v1.0.zip
2021-03-01 13:34:22梦雪网页截图工具可用于批量将网页截图保存到电脑。 梦雪网页截图工具依懒于谷歌浏览器正式版; 在使用前,请确保电脑安装谷歌浏览器正式版 87.0.4280.88 以上版本。 文件名默认保存以顶级域名.png 格式 -
Win+PHP+IECapt完整实现网页批量截图并创建缩略图
2015-12-29 16:28:00最近在开发一个本地互联网应用的项目,为了增加用户体验,需要在搜索结果左侧显示如图一所示的某个网站的缩略图...下面是在windows环境下用php结合iecapt实现的网页截图并创建缩略图的步骤和代码: 一、准备 下载... -
C#批量获取web网站html页面截图
2015-06-26 17:34:08通过网站url批量获取html页面截图,将网站的缩略图显示到listview里,边抓取边显示,支持进度条,listview项支持右键菜单 -
(必备技能)使用Python实现屏幕截图
2022-05-30 20:32:58(必备技能)使用Python实现屏幕截图 文章目录 (必备技能)使用Python实现屏幕截图 一、序言 二、环境配置 1、下载pyautogui包 2、下载opencv-python包 3、下载PyQt5包 4、下载pypiwin32包 三、屏幕截屏源码与...