我想要通过php、java等程序自动为业务中的不同网站进行网页截图保存。通过网络上资料阅读,程序语言本身无法实现该功能,需要其他程序配合。
我的服务器是Linux CentOS 6.x,因此在这里我只记录在CentOS下面的过程和问题
主要用到以下软件工具:
1.Qt47:这个是CutyCapt底层架构,CutyCapt依赖Qt47(必须)
2.CutyCapt:进行网页截图的工具(必须)
3.x-server:需要配合CutyCapt进行截图(必须)
4.中文包:对中文网站截图,需要中文包的支持(必须)
5.ImageMagick:截图后对图片进行压缩等处理(可选)
安装过程步骤
一、先安装Qt47
增加qt47的下载源
Java代码 收藏代码
vi /etc/yum.repos.d/atrpms.repo
插入以下内容并保存
Java代码 收藏代码
[atrpms]
name=CentOS $releasever – $basearch – ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=1
[atrpms-testing]
name=CentOS $releasever – $basearch – ATrpms testing
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=1
安装相关依赖包
Java代码 收藏代码
yum update
yum install qt47
yum install qt47-devel
yum install qt47-webkit
yum install qt47-webkit-devel
可能的错误1
引用
warning: qt44-x11-4.4.3-10_4.el5.x86_64.rpm: Header V4 DSA signature: NOKEY, key ID 66534c2b
解决
引用
yum -y install qt-devel*
可能的错误2:某些冲突conflict
引用
qt47-x11 conflicts with qt-x11
qt47-x11 conflicts with qt-x11
解决:通过yum remove 卸载冲突的内容
引用
yum remove qt-devel
yum remove qt-x11
二、安装 CutyCapt
下载代码,这里需要用到SVN,如果没有安装,可以使用命令安装:yum install subversion
Java代码 收藏代码
cd /data0/software #目录根据自己的需求情况而不同
svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
mv cutycapt/CutyCapt /usr/local/cutycapt #目录根据自己的需求情况而不同
cd /usr/local/cutycapt
编译安装
Java代码 收藏代码
qmake
make
可能的错误1
引用
-bash: qmake: command not found
解决:使用命令
引用
qmake-qt47
可能的错误2
引用
make: *** [CutyCapt] Error 1
解决:
引用
yum update sqlite
三、下载x-server
Java代码 收藏代码
wget http://www.flexthinker.com/wp-content/uploads/2009/11/xvfb-run.sh.txt
mv ./xvfb-run.sh.txt/usr/local/cutycapt/xvfb-run.sh
chmod u+x /usr/local/CutyCapt/xvfb-run.sh
四,安装中文包
Java代码 收藏代码
yum install fonts-chinese
五,安装ImageMagick
Java代码 收藏代码
yum install ImageMagick
六,运行 CutyCapt进行截图:执行以下命令,如果没有错误,就会在当前目录下面保存截图
Java代码 收藏代码
/usr/local/cutycapt/xvfb-run.sh --server-args="-screen 0, 1024x768x24"/usr/local/cutycapt/CutyCapt --url=http://www.163.com --out=163.jpg
Q:出现-bash: xvfb-run: command not found 或 xauth : command not found
A:安装 yum install Xorg xauth xorg-x11-fonts*(Xorg,xauth,xorg-x11-fonts* 这是三个不同的工具,每个都需要单独运行yum install来安装)
Q:错误提示:"mktemp: too few X's in template `Xauthority'."
A: 找到 AUTHFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" Xauthority)
修改为:AUTHFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" Xauthority.XXXXXXXX)
Q:错误提示:CutyCapt: cannot connect to X server :99
A: 确认server-args参数是否正确,
修改xvfb-run.sh脚本中SERVERNUM=99 改为SERVERNUM=0
Q:截出来的图片没有中文字,需要安装中文字体
A: yum install cjkuni-ukai-fonts cjkuni-uming-fonts -y
七、处理截图
由于截屏的是整个网站的页面,只需要第一屏幕
system('xvfb-run --server-args="-screen 0, 1024x768x24" CutyCapt --min-width=1024 --url=http://wx.shaohualee.com/addon/UserCenter/Info/my_next.html --out=/var/www/weixin/Upload/abc.png')
分类: web
标签:
搜索
标签
study
ab
amap
apache
apahe
awk
aws
bat
centos
CFS
chrome
cmd
cnpm
composer
consul
crontab
css
curl
cygwin
devops
di
docker
docker,docker-compose
ethereum
excel
fiddler
fluentd
framework
front-end
git
gitgui
github
glide
go
golang
gorm
grafana
gzip
ioc
item2
iterm2
javascript
jenkins
jsonp
kafka
laradock
laravel
larval
linux
liunux
log
mac
mac, wi-fi
macos
magento
mariaDB
minikube
mongoDB
msp
mysql
netbeans
nginx
nodejs
nohup
npm
nsq
oracle
php
php-fpm
php7
phpstorm
php扩展
Protobuf
python
redis
scp
server
shell
soap
socket
socket5
sql
sre
ssdb
ssh
ssl
study
sublime
swift
system
td-agent
uml
v2ray
vagrant
vagrnat
vim
vpn
vue
vue.js
webpack
webrtc
websocket
webtatic
windows
windows7
word
wps
xdebug
yarn
yii2
yum
zookeeper
世界国家
互联网
以太坊
分类
前端
小程序
打印机
排序算法
搞笑
权限
粤语
缓存
网络
虚拟机
视频
设计模式
项目管理
热门文章
友情链接