Centos获取网页截图

环境准备

  • Centos 7
  • Python 2.7 (一般Centos7默认安装了Python2.7)
  • Git

安装

安装Python-webkit2png

git clone https://github.com/adamn/python-webkit2png.git
cd python-webkit2png
python setup.py install

安装PyQt4相关依赖

yum install PyQt4.x86_64
yum install PyQt4-devel.x86_64
yum install PyQt4-webkit.x86_64
yum install PyQt4-webkit-devel.noarch

安装Xvfb(虚拟X server)

yum install xorg-x11-server-Xvfb.x86_64

使用

执行命令

我们来尝试截取百度页面

webkit2png https://baidu.com -x 1280 1200 -o baidu.png

webkit2png后面是目标链接(也可以是html文件),参数-x 1280 1200表示宽高,-o baidu.png表示保存为baidu.png

执行以上命令后,没报错则说明安装成功(报错了可能是少安装了以上的依赖包)

我们可以将图片传送到自己的本地进行查看,图片如下

baidu

解决图片乱码情况

如果你的图片上的中文都是乱码,说明系统中缺少支持的中文字体

解决方法如下

  1. 下载任意一种中文字体,或者直接从windows系统的字体文件夹(C:\Windows\Fonts)中选择一种,比如宋体simsun.ttc

  2. 将该字体文件放入/usr/share/fonts/路径下

  3. 修改权限

    sudo chmod 644 /usr/share/fonts/simsun.ttc
    
  4. 执行以下命令,使字体生效

    sudo mkfontscale
    sudo mkfontdir
    sudo fc-cache -fv
    
  5. 如果执行以上命令,出现command not found,说明系统没有安装该命令,因此需要安装一下

    # 使mkfontscale和mkfontdir命令正常运行
    yum install mkfontscale 
    # 使fc-cache命令正常运行。如果提示 fc-cache: command not found
    yum install fontconfig
    

    安装完毕后再执行重新第4步就可以使字体生效了

  6. 重新执行webkit2png的截图命令,截出来的图片就可以正常显示中文了

posted @ 2021-07-15 11:55  蓝莓薄荷  阅读(277)  评论(0编辑  收藏  举报