linux命令行抓取网页快照-(xvfb+CutyCapt)

又一个 WordPress 博客
Browse: Home / 2009 / 十一月 / linux命令行抓取网页快照-(xvfb+CutyCapt)
linux命令行抓取网页快照-(xvfb+CutyCapt)

By saymoon on 2009年11月13日
目的:

在一台没有安装X-server的Debian服务器上实现命令行抓取网页快照
软件:

xvfb(在命令行下实现对X-server的模拟,渲染图形进行缓存)-在没有安装X-Server的环境下提供图像渲染
CutyCapt(模拟浏览器对网页进行下载、HTML、css渲染、Javascript执行,并将最终渲染完成的网页进行快照)- 主力干将
Qt(CutyCapt是基于此框架开发的)

实践:

1.安装CutyCapt、Qt及相关软件包:
帮助
1
2
3
4
5

sudo apt-get install subversion libqt4-webkit libqt4-dev g++
svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
cd cutycapt/CutyCapt
qmake
make

2.安装xvfb:
帮助
1

apt-get install xvfb

3.抓取测试:
帮助
1

xvfb-run --server-args="-screen 0, 1024x768x24" ./CutyCapt --url=http://www.zol.com.cn --out=zol.png

发现抓到的中文网页时乱码:

中文网页快照乱码

4.折腾了半天,原来是没有安装中文字体,安装中文字体,再抓~~
网页快照最终版
总结:

基本实现了通过linux命令行实现网页快照抓取的功能,但是CutyCapt对Javascript的解析能力还是有限,从上图可以看出通过swfobject加载的flash都没有被渲染出来。以后有空会尝试用Firefox直接做渲染抓取。
参考链接:

http://cutycapt.sourceforge.net/
http://www.x.org/archive/X11R6.8.2/doc/Xvfb.1.html
http://www.yeeach.com/tag/screenshot/
http://hi.baidu.com/pkubuntu/blog/item/7dcc064ff0246a3eaec3abe2.html
http://qt.nokia.com/
http://en.wikipedia.org/wiki/Xvfb

安装中文字体:http://hi.baidu.com/spiritualcity/blog/item/96369c2afa8740fde6cd40d2.html
Linux中文内码控制方案:http://zhcon.sourceforge.net/index_cn.html

Posted in linux | Tagged cutycapt, debian, xvfb, 快照 | 12 Responses
12 responses to “linux命令行抓取网页快照-(xvfb+CutyCapt)”

bill
bill 2009年12月3日 at 12:58 上午 | Permalink

sudo apt-get install subversion libqt4-webkit libqt4-dev g++
svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
cd cutycapt/CutyCapt
qmake
make

为什么我执行这个的时候。前两行都不能正确执行呢。我通过下载的方式下载了cutycapt,解压后运行make 也会报很多错。。请指教!
bill
bill 2009年12月3日 at 1:00 上午 | Permalink

Google搜到一个网页,也是我这样的错误。但是没看到有好的解决方法。我QT也安装了。gcc也都装了。
bill
bill 2009年12月3日 at 1:02 上午 | Permalink

因为没有成功安装Cutycapt,所以执行 xvfb-run –server-args=”-screen 0, 1024x768x24″ ./CutyCapt –url=http://www.google.com –out=example.png 后,也无法正确得到结果。困扰了我一天了。望指教!
bill
bill 2009年12月8日 at 8:09 下午 | Permalink

自己弄好了。呵呵。就差安装中文字体了
bill
bill 2009年12月8日 at 11:08 下午 | Permalink

对了,那个控制尺寸的,是不是不好用?
screen 0, 1024x768x24

无论改成什么,抓到的都是那个页面实际大小
Charly
Charly 2010年01月5日 at 1:39 上午 | Permalink

生成了一个空白图,昨回事呢?
timberland
timberland 2010年02月19日 at 1:19 上午 | Permalink

嘿嘿。。。
我又來了。。。
前來看望問候博主。。。
欣賞博主精文。。。
祝健康、幸福、快樂。。。
期待博主新作!。。。
在线网页截图实现技术 | Hi Java!
在线网页截图实现技术 | Hi Java! 2010年04月20日 at 4:29 上午 | Permalink

[...] http://blog.saymoon.com/2009/11/take-snapshot-in-linux-command-line/ [...]
bill
bill 2010年07月12日 at 7:52 下午 | Permalink

好端端的突然又不好用了。生成的都是空白页。。诡异啊!
道茶
道茶 2010年10月9日 at 8:24 上午 | Permalink

我连空白页面都没有
/usr/local/bin/xvfb-run: line 168: 23696 Segmentation fault DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE “$@” 2>&1

只有这个错误
daniel
daniel 2011年09月14日 at 11:50 下午 | Permalink

WIN2003里也乱码,怎么办?
oscar
oscar 2011年10月8日 at 11:56 下午 | Permalink

谢谢楼主,测试成功,不过
2.安装xvfb:不能自动成功

apt-get install xvfb

最后在http://packages.debian.org/zh-cn/lenny/xvfb
下载xvfb包 就可以了

linux命令行抓取网页快照-(xvfb+CutyCapt)相关推荐

  1. linux命令行抓取网页快照

    linux命令行抓取网页快照-(xvfb+CutyCapt) 目的: 在一台没有安装X-server的Debian服务器上实现命令行抓取网页快照 软件: xvfb(在命令行下实现对X-server的模 ...

  2. python 命令行抓取分析北上广深房价数据

    引言 昨天在老家,发布了一篇<python 自动抓取分析房价数据--安居客版>.在文末,第6小节提供了完整代码,可以在 python3 环境,通过命令行传入参数 cookie 自动抓取房价 ...

  3. Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析

    在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析. 最近才发现,原来wire ...

  4. wireshark tshark抓包筛选并存入文件 Centos linux 命令行抓包 yum安装wireshark

    借鉴:https://www.cnblogs.com/happyday56/p/10361294.html 借鉴:https://www.codetd.com/article/720897 借鉴:ht ...

  5. linux命令日志抓取,linux抓取某条日志记录的命令

    温馨提示:截图可能有点小模糊,勉强可以看到,查看原图可以看得比较清晰 一.less命令 格式是:less [参数] 文件,假设all-9000-2019-08.0.log是文件名 1.打开日志文件是 ...

  6. 【linux测试必背| tcpdump】命令行抓包神器 | tcpdump抓取post请求并显示详细参数

    命令行抓包神器 | tcpdump抓取post请求并显示详细参数 知识背景(diu ren 经历) 1. tcpdump抓包工具捕捉tcp请求 三次握手和四次挥手 适用场景: 命令格式: 2. tcp ...

  7. 在 Linux 命令行中使用 tcpdump 抓包

    tcpdump抓包时,如果-i选项指定为一个网卡地址,那么抓取的数据包数据链路层是以太网头部:如果指定any,则以太网头部将被替换为linux cooked capture头部 # tcpdump - ...

  8. Linux命令行与shell脚本编程大全:第2版

    <Linux命令行与shell脚本编程大全:第2版> 基本信息 作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍] 译者: 武海峰 丛书名: 图 ...

  9. Linux使用tcpdump抓取网络数据包示例

    tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump ...

最新文章

  1. 如何促使团队紧密协作
  2. Confluence 6 授权
  3. mysql丢失召回_mysql笔记
  4. 吴裕雄 19-Mysql 连接的使用
  5. 动态网站的技术路线_3个好玩实用小网站!闲暇时间不妨打开看看
  6. 编写一个C程序,实现以下功能:输入n个人的身高,然后从n个人中选出身高差值最小的两个人作为礼仪(如果差值相同的话,选取其中最高的两个人),要求输出两个礼仪的身高。
  7. html表单中按钮添加超链接,JS 实现点击按钮实现超链接功能
  8. GCC编译警告选项的学习
  9. r 重命名 列名_R-reshape2
  10. WINDOWS是如何在注册表里记录盘符分配的
  11. cookie、session、sessionid 与jsessionid之间的关系
  12. php 命令安装tp5,tp5.1框架的下载与安装方法步骤(图文)
  13. 【Allennlp】: Allennlp中的test_data
  14. js实现回到顶部,以及回到指点div顶部
  15. php datedif,Datedif函数全面解析及BUG分析
  16. OpenHarmony2.0 一站式编译烧录Hi3516标准系统
  17. 小程序引用公共js,不看可惜了!!
  18. caff2 与 pytorch 模型的转换--onnx
  19. 学习笔记:点云库PCL(Point Cloud Library )介绍
  20. 【论文总结】LINE和DEEPWALK方法总结与比较

热门文章

  1. python用pip安装pillow_cent 6.5使用pip安装pillow总是失败
  2. 密码学专题 文件编码格式
  3. 开发人员必学的5门课程
  4. Linux 内核调试器 调试指南
  5. VUE 解决:Property or method “deleteFun“ is not defined on the instance but referenced during render.
  6. Shell 参数传递、 $* 与 $@ 区别
  7. Doracle.jdbc.J2EE13Compliant=true
  8. 关于在smarty中实现省市区三级联动
  9. javascript设计模式-继承
  10. 基本排序算法及分析(二):冒泡排序