linux 获取网站预览图,Shell脚本实现获取网页快照并生成缩略图

news/2024/5/20 12:06:26/文章来源:https://blog.csdn.net/weixin_26704651/article/details/116954915

获取网页快照并生成缩略图可分两步进行:

1、获取网页快照

2、生成缩略图

获取网页快照

这里我们用 phantomjs 来实现。关于 phantomjs 的详细用法可参考官方网站。http://phantomjs.org/

1、安装

我的环境是CentOS6.5,安装时直接下载 tarball 然后解压即可。

# wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-i686.tar.bz2

# tar -jxvf phantomjs-1.9.8-linux-i686.tar.bz2

# cp phantomjs-1.9.8-linux-i686/bin/phantomjs /bin/phantomjs

第二步中解压后bin目录下的 phantomjs 二进制文件即是可调用命令。

第三步是为了在以后调用命令时不必输入命令全路径。

2、调用phantomjs的调用需要一个js脚本。这个js脚本接收两个参数,分别是网址url和快照文件名称filename,脚本snap.js内容如下:

/*

* desc: get snapshot from url

* example: phantomjs snap.js http://www.baidu.com baidu.png

*/

var page = require('webpage').create();

var args = require('system').args;

var pageW = 1024;

var pageH = 768;

page.viewportSize = {

width: pageW,

height: pageH

};

var url =  args[1];

var filename = args[2];

page.open(url, function (status) {

if (status !== 'success') {

console.log('Unable to load ' + url + ' !');

phantom.exit();

} else {

window.setTimeout(function () {

page.clipRect = { left: 0, top: 0, width: pageW, height: pageH };

page.render(filename);

console.log('finish:', filename);

phantom.exit();

}, 1000);

}

});

在这个脚本中还有个小小的设置,就是设置打开页面的浏览器可视区域的大小为1024*768,然后取第一屏内容。

调用命令如下:

phantomjs snap.js http://www.baidu.com baidu.png

注意:这里执行命令的用户需要对目录有写权限。

3、效果

获取的截图如下:

844220c182694f60e43936760a0b3283.png

生成缩略图

生成缩略图用的是ImageMagick工具,ImageMagick是个非常强大的图片处理工具,可对图片进行转化(格式转换、缩放、剪切、模糊、反转等)、屏幕截图、图片显示等,详细用法可参考  我的ImageMagick使用心得 一文。

1、安装

redhat系列可使用yum安装:

# yum install ImageMagick ImageMagick-devel

其他平台安装请参考官方网站:http://www.imagemagick.org/script/binary-releases.php,根据你的系统选择相应的包或自己编译源码。

2、调用

我们这里只使用图片缩放工具,语法为:

convert -resize 320x240 baidu.png baidu_thumbnail.png

默认是按比率缩放,如果要强制缩放,可以在尺寸后面加感叹号:

convert -resize 320x240! baidu.png baidu_thumbnail.png

3、效果

生成的缩略图如下:

2f244faa19a19624bd0b1b438a6e42ca.png

整合脚本如果希望将上两步自动化,可以写一个shell脚本实现:

# !/bin/bash

# desc: create snapshot from url

# example: sh createsnap.sh http://www.baidu.com baidu

URL=$1

IMAGE_NAME=$2

SNAPSHOT_NAME="${IMAGE_NAME}.png"

THUMBNAIL_NAME="${IMAGE_NAME}_thumbnail.png"

phantomjs snap.js $URL $SNAPSHOT_NAME

convert -resize 320x240 $SNAPSHOT_NAME $THUMBNAIL_NAME

exit 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_800991.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

火车头免费版为zencart网站采集多张图片

相信很多刚开始学习火车头的菜鸟们,也和烂泥一样使用的是火车头免费版,然后为我们的zencart网站进行一些产品数据的采集。但是在写采集规则的时候,会经常碰到的一个问题就是如何采集一个产品的多张图片。 采集一张图片的规则,相信…

PHP 在 2021 年是否仍然与构建网站相关:好处和真实案例分析

之前写了.NET相关的文章分析,今天来聊聊PHP,毕竟它一直都是各大网站,企业的热门红人。 在进行Web开发时,在选择编程语言时,很难做出选择。市场上有很多选择,选择哪一个都可以,但是最终还是看看你…

JAVA_SSM房屋租赁网站系统(含论文)毕业设计【演示视频】

演示视频 JAVA_SSM房屋租赁网站系统(含论文)毕业设计【演示视频】 – 源社区演示视频 源码下载链接 http://www.51aspx.com/code/JAVASSMBuildingRentalWebsiteSystem 源码描述 本系统基于SSM(SpringSprin…https://club.51aspx.com/1671/ 源码下载链接 JAVA_SSM房屋租赁网站…

教学网站毕业设计源码【演示视频】

演示视频 教学网站毕业设计源码【演示视频】 – 源社区演示视频 源码下载地址 https://www.51aspx.com/code/OYXOnlineTeachingWebsite 源码特点 一款在线教学网站毕业设计,包含论文,有后台管理,适合初学者学…https://club.51aspx.com/2544…

网站被插入pos.baidu广告,疑似网站被黑

2019独角兽企业重金招聘Python工程师标准>>> 检查页面发现最底部被添加了一段代码 <script id"bdn27wkwcmq0q056pvs57jp10vml?ac00%3Af3%3Ad2%3A10%3A00%3A2a&freqnoband&hades&shopIdnoband" src"http://114.55.181.105/js/hades.…

不同网站不同网卡_为什么做网站价格不同?

网站制作一年350元&#xff0c;五站合一&#xff0c;快速建站 &#xff0c;www.sxjcwzjs.com,只需进入网站右上角注册快速建站即可(需要电脑登录注册)&#xff0c;需要联系我吧&#xff01;电话&#xff1a;13752214574&#xff0c;微信号&#xff1a;m1078582894制作要求做网站…

网站开发建设的注意事项

如今绝大部分公司的营销策略都是充分利用网络&#xff0c;那麼建立一个良好的、客户满意度高的网站便是一件很重要的事儿了&#xff0c;并且它不仅只是开展营销推广&#xff0c;网站中还会展现公司的总体形象、营销推广的品牌等。 因此在开发公司网站时下就必须要注意一些事项&…

网站开发建设前的准备工作

在网络时代&#xff0c;公司沒有一个网站是说不过去的&#xff0c;如今就算是本人都能够构建一个网站&#xff0c;因此了解一个网站在开发建设以前应当提前准备些什么就很重要了&#xff0c;那样不但为后面的网站建设做准备&#xff0c;也会提升公司网站开发的效率。鸿泰盛科技…

如何选择网站建设公司?

无论是新兴产业&#xff0c;还是传统行业的强大企业都将建设一个与众不同的公司网站&#xff0c;以互联网的方式来营销公司&#xff0c;在客户心里塑造良好品牌形象&#xff0c;虽然市面上有许多的网站建设服务商&#xff0c;但不同服务商的经营规模、整体实力、团队、服务等方…

公司网站建设常见问题

伴随着社会的迅猛发展&#xff0c;各个行业公司均有自身的官方网站&#xff0c;网站建设开发是如今互联网中一个重要的发展趋势。当公司在开发建设网站时会碰到各种各样的问题&#xff0c;下面鸿泰盛科技简要分析。 一、过于重视价格 部分公司在网站建设的时候&#xff0c;过于…

网站建设应该注意的细节

如今许多的公司都有网站开发建设需求&#xff0c;尽管现在直播带货、微商代理很火&#xff0c;但网站做为传统式的互联网推广的方法&#xff0c;它的作用依然不容小觑&#xff0c;因此许多企业在考虑到着做一个属于自身的网站&#xff0c;以便于更好地服务客户&#xff0c;那麼…

ios11修改微信步数_网页一键就能修改微信步数?这个网站你值得看下

点击标题上方 蓝字 订阅 来问科技置顶此公众号&#xff0c;分享实用软件、小技巧 微信运动&#xff0c;本来一个单纯的步数记录工具&#xff0c;因为微信强大的社交属性而成为了“微信名利”的竞技场&#xff0c;微信刷步服务也从而滋生出来。如果你刚好需要这个服务&#xff0…

从架构图中学习大型网站的设计经验

1、WikiPedia 技术架构 来自wikipedia的数据&#xff1a;峰值每秒钟3万个 HTTP 请求 每秒钟 3Gbit流量, 近乎375MB 350 台PC 服务器。 GeoDNSA &#xff1a;40-line patch for BIND to add geographical filters support to the existent views in BIND", 把用户带到最近…

网站建设的好处有哪些?

1.提升企业品牌形象 企业网站的作用更类似企业在报刊和电视上所做的宣传企业自身及产品品牌的广告。不同的地方是企业网站的容量更多&#xff0c;企业可以把一切想让客户及群众了解的內容都放进网站里。除此之外&#xff0c;创建企业网站的资金投入比其他广告方式要低得多。 2.…

医疗网站开发注意事项

伴随着健康医疗行业的飞速发展&#xff0c;医疗网站开发早已是许多医院的必需品&#xff0c;无论是广播电视新闻媒体或是大城市的任何角落里&#xff0c;经常都可以看到的医院的广告宣传语。而伴随着互联网科技的发展&#xff0c;医院网页广告也是五花八门&#xff0c;随意在互…

网站可行性报告范文_光山县代做可行性研究报告范文格式

光山县光山县代做可行性研究报告范文格式新疆保险业积极服务于自治区卫生与养老服务结合试点&#xff0c;综合协调有序推进取得实效&#xff0c;加快发展适合多年龄段的健康保险产品&#xff0c;多层次保障需求。各类健康保险累计新增保单30321万件&#xff0c;为5457万人赔付支…

计算机爱好者常用网站和软件推荐

大家好我是狗蛋今天呢和大家分享几个学习计算机的网站 1.我要自学网-视频教程&#xff0c;自学电脑、设计、编程、会计&#xff0c;尽在自学网我要自学网-免费视频教程,提供全方位软件学习&#xff0c;有3D教程&#xff0c;平面教程&#xff0c;多媒体制作教程&#xff0c;办公…

@valid 对数组校验_SpringBoot入门建站全系列(三十三)集成validator校验接口数据...

SpringBoot入门建站全系列&#xff08;三十三&#xff09;集成validator校验接口数据一、概述在开发中经常需要写一些字段校验的代码&#xff0c;比如字段非空&#xff0c;字段长度限制&#xff0c;邮箱格式验证等等,如果我们直接将这些校验写死在代码里&#xff0c;将会遇到这…

【Python】完美解决Pycharm网站无法访问问题

解决Pycharm网站无法访问问题在我们输入网站&#xff1a;https://www.jetbrains.com/时会出现如下问题&#xff1a; 无法访问这个网站 嗯…无法访问此页面 原因&#xff1a;因为你之前有安装过破解版pycharm&#xff0c;同时修改过host 文件&#xff0c;阻止劫持了官网链接。…

码农如何快速打造一个有设计感的网站

注&#xff1a;拥有属于自己的网站是很多人的梦想&#xff0c;但大多数人只能借助像 WordPress 这样的 CMS 实现&#xff0c;甚至很多公司网站也是这样。但这些网站大多数看起来都比较缺乏设计感&#xff0c;通俗来讲就是有点“土”。那么对于像程序员以及其他对设计比较小白们…