Centos(linux)下cutycapt安装使用教程
在Centos(linux)安装cutycapt
Install CutyCapt on Centos
开启 EPEL repository
CentOS 7
yum install epel-release
CentOS 6 or Earlier
rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
CentOS/RHEL 5.*
rpm -Uvh http://mirrors.kernel.org/fedora-epel/5/i386/epel-release-5-4.noarch.rpm
安装cutycapt
运行cutycapt报错
cutycapt: cannot connect to X server :0
还需要安装Xvfb
yum install Xvfb
安装完Xvfb以后 ,cutycapt运行一下命令行
xvfb-run –server-args=”-screen 0, 1280×1200x24″ cutycapt –url=http://www.cnn.com –out=cnn.png
同时生成多张图片的话,把Xvfb服务后端运行
touch /etc/init.d/xvfb with content:
#!/bin/bash
#
# /etc/rc.d/init.d/xvfbd
#
# chkconfig: 345 95 28
# description: Starts/Stops X Virtual Framebuffer server
# processname: Xvfb
#
. /etc/init.d/functions
[ "${NETWORKING}" = "no" ] && exit 0
PROG="Xvfb"
PROG_OPTIONS=":7 -ac -screen 0 1024x768x24"
PROG_OUTPUT="/tmp/Xvfb.out"
case "$1" in
start)
echo -n "Starting : X Virtual Frame Buffer "
$PROG $PROG_OPTIONS>>$PROG_OUTPUT 2>&1 &
disown -ar
/bin/usleep 500000
status Xvfb & >/dev/null && echo_success || echo_failure
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
/bin/touch /var/lock/subsys/Xvfb
/sbin/pidof -o %PPID -x Xvfb > /var/run/Xvfb.pid
fi
echo
;;
stop)
echo -n "Shutting down : X Virtual Frame Buffer"
killproc $PROG
RETVAL=$?
[ $RETVAL -eq 0 ] && /bin/rm -f /var/lock/subsys/Xvfb /var/run/Xvfb.pid
echo
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
status)
status Xvfb
RETVAL=$?
;;
*)
echo $"Usage: $0 (start|stop|restart|reload|status)"
exit 1
esac
exit $RETVAL
Registering in system and start:
chmod +x /etc/init.d/xvfb
chkconfig xvfb on
service xvfb start
now
export DISPLAY=:7 (actually you should add this to your etc/bashrc)
例子,在一台不含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作为后台守护进程启动。