将一个特定页面抓取为一张png图片的最简单的方法是使用CutyCapt,这是一种在Linux下的方便地将HTML网页转化成矢量图形和位图图像格式的命令行工具(比如,SVG, PDF, PS, PNG, JPEG, TIFF, GIF)。CutyCapt内部使用WebKit渲染引擎来导出网页渲染输出到图片文件中。它使用Qt构建,CutyCapt实际上是一个也可以在Windows上使用的跨平台应用。(译注:也有一个基于IE内核的 IECapt 可以作此用途)

在本篇教程中,我会描述如何将一个HTML网页使用CutyCapt转化成png图片。

在Linux上安装 CutyCapt

这是在特定Linux发行版上的安装命令。

在Debian, Ubuntu 或者 Linux Mint 安装 CutyCapt$ sudo apt-get install cutycapt

在Fedora上安装 CutyCapt$ sudo yum install subversion qt-devel qtwebkit-devel gcc-c++ make

$ svn co svn://svn.code.sf.net/p/cutycapt/code/ cutycapt

$ cd cutycapt/CutyCapt

在Fedora上编译前,你需要在源码上打上补丁。

使用文本编辑器打开CutyCapt.hpp,并且加入在文件的开头加上下面的两行。#include

#include

最后,如下编译并安装CutyCapt。$ qmake-qt4

$ make

$ sudo cp CutyCapt /usr/local/bin/cutycapt

在CentOS 或者 RHEL安装 CutyCapt

首先在你的Linux上启用EPEL仓库。接着和在Fedora上一样使用相同的步骤编译安装。

使用CutyCapt将 HTML 转化成 PNG

将一个HTML页面截图成一个png图片,只要使用下面的格式运行CutyCapt。$ cutycapt --url=http://www.cnn.com --out=cnn.png

要将HTML页面保存成不同的格式(比如,PDF),只要适当地指定输出文件。$ cutycapt --url=http://www.cnn.com --out=cnn.pdf

下图显示了CutyCapt命令选项。

在一台不含X的服务器上使用CutyCapt将HTML转换成PNG

虽然CutyCapt是一个命令行工具,但是它需要X服务运行。如果你尝试在不含X服务的机器上运行,你会得到下面这个错误:cutycapt: cannot connect to X server :0

如果你要不含X的服务器上运行CutyCapt,你可以在服务器上安装Xvfb(轻量级“假的”X11 服务)。这样CutyCapt就不会报错了。

要在Debian, Ubuntu 或者 Linux Mint 上安装Xvfb:$ sudo apt-get install xvfb

要在Fedora, CentOS 或者 RHEL 上安装Xvfb:$ sudo yum install xvfb

在安装Xvfb之后,接下来像这样运行CutyCapt。$ xvfb-run --server-args="-screen 0, 1280x1200x24" cutycapt --url=http://www.cnn.com --out=cnn.png

它首先会运行Xbfb服务,接着使用CutyCapt来抓取网页。因此它可能会花费更长的时间。如果你想要截图多张截图,你可能事先需要将Xvfb作为后台守护进程启动。

linux中html图标格式,如何在Linux上将HTML页面转化成png图片相关推荐

  1. linux通过html显示图片,如何在Linux上将HTML页面转化成Png图片?

    将一个特定页面抓取为一张png图片的最简单的方法是使用CutyCapt,这是一种在Linux下的方便地将HTML网页转化成矢量图形和位图图像格式的命令行工具(比如,SVG, PDF, PS, PNG, ...

  2. 如何在linux中使用u盘,如何在Linux系统下使用U盘

    如何在Linux系统下使用U盘 Linux系统中U盘被视为SCSI设备, SCSI设备对应的设备文件格式为"sdX" 系统中的第一个SCSI设备表示"sda", ...

  3. linux中fstab文件_如何在Linux上写入fstab文件

    linux中fstab文件 zentilia/Shutterstock.comzentilia / Shutterstock.com Adding a new hard drive or solid- ...

  4. 在linux中删除多级目录,如何在Linux中删除目录

    在Linux系统中,有几种删除目录的方法.如果使用桌面文件管理器,例如Gnome的文件或KDE的Dolphin,则可以使用图形用户界面管理器删除文件和目录.但是,如果您在没有GUI的服务器上工作,或者 ...

  5. c在linux中怎样执行文件,如何在Linux中编译和运行C/C+程序,简单示例教懂你

    C是一种过程编程语言.它最初是由Dennis Ritchie在1969年至1973年之间开发的.它主要是作为用于编写操作系统的系统编程语言而开发的.C语言的主要功能包括对内存的低级访问,一组简单的关键 ...

  6. linux中test的用法,如何在Linux中使用test命令

    Linux系统中有时需要检测某个条件是否成立,那么就要用到test命令了,Linux下test的用法有很多,下面就随学习啦小编一起来学习下Linux系统中如何使用test命令吧. 1.判断一个命令的结 ...

  7. linux中网络怎么检查,如何在Linux中检查以太网?

    要检查链接是否已启动,请尝试以下操作.它没有root权限. #include // printf #include // strncpy //#include // AF_INET #include ...

  8. linux中文件权限 组,linux中文件权限格式与chmod命令以及用户和用户组的管理

    简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [] -R 或者--recursive 递归处理,表示将指定目录下的所有文件 ...

  9. linux建立文件的符号链接,如何在Linux中创建符号链接[完整指南]

    Linux中的符号链接是什么,为什么使用它? 符号链接(也称为符号链接或软链接)是一种特殊类型的文件,它只是指向另一个文件或目录,就像Windows中的快捷方式一样,创建符号链接就像为实际文件创建别名 ...

最新文章

  1. 高薪源于专注和极致!
  2. 2020年度「炼丹笔记」搜索推荐系统干货集锦
  3. C# socket编程第三篇
  4. Java中关于枚举的7种用法
  5. 【bzoj1532】[POI2005]Kos-Dicing 二分+网络流最大流
  6. SQL SERCER 控制 SERVERICE BROKER 服务
  7. C#获取堆栈信息,输出文件名、行号、函数名、列号等
  8. Centos7 安装solr及配置
  9. 知道吗?9个搜索引擎优化(SEO)最佳实践
  10. 从金钱社会向财富第三极的过渡方案
  11. Zookeeper数据同步流程
  12. c#程序设计实训报告心得体会_C#实训总结报告
  13. 《学会呼吸》书中的精髓:如何通过训练自己的呼吸,逐步改善健康问题?
  14. 云洲无人船:驶向水上智能时代
  15. 53页PPT | 湖仓一体大数据平台解决方案
  16. Python中 list[:]与 list 的区别
  17. UI自动化工具Cypress测试案例、生成报告---windows版
  18. oralce字符串函数
  19. python输出宽度是什么意思_Python输出长度
  20. 【Linux】USB驱动程序

热门文章

  1. 多目标跟踪 | FairMOT:统一检测、重识别的多目标跟踪框架,全新Baseline
  2. CentOS 7安装gitlab服务器
  3. VPC DHCP类型的ECS修改DNS
  4. 用shell解决ddos攻击实例
  5. SpringCloud(第 002 篇)简单电影微服务类(消费方,而提供方为用户微服务)
  6. SharePoint 2010中的客户端模型
  7. 《敏捷迭代开发:管理者指南》—第2章2.5节渐进开发和自适应开发
  8. log_bin.index not found 启动报错解决
  9. Linux运维人员成长之路学习书籍推荐
  10. linux下mysql授权_linux下mysql命令(用户授权、数据导入导出)