1、下载PhantomJS;
从官网http://phantomjs.org/download.html下载linux64位的安装包即 phantomjs-2.1.1-linux-x86_64.tar.bz2
2、 重命名
#mv phantomjs-2.1.1-linux-x86_64.tar.bz2 phantomjs
3、上传到服务器并解压
# tar xjf phantomjs-2.1.1-linux-x86_64.tar.bz2
4、跑由python脚本写的phantomjs代码
# cd /var/lib/hadoop-hdfs/workpath/py/bi
# python bi_quota_phantomjs_pic_mail_pro.py
Q1:报 selenium 组件不存在
A1:pip install selenium
Q2:服务器使用phantomjs报错:phantomjs unexpectedly exited. Status code was: 127
A2:分ubuntu和centos
Ubuntu尝试:sudo apt-get install libfontconfig
centos尝试: 用wget安装phantomjs依赖的libfontconfig
sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6 (出现安装有些资源安装不来下time out )
Q2.1:sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6 (出现安装有些资源安装不来下time out)
A2.1:找到reps目录下的资源,将超时timeout的先备份-->清空,再重试,或删除版本比较低的组件;再执行就OKey!
Q3:再次执行python脚本写的phantomjs代码,发现截取的图片上没有汉字;问题是当前虚拟机上没有匹配到html中的字体包;
A3:虚拟机上安装 PingFangSC-Regular字体包 (https://raw.githubusercontent.com/zongren/font/master/PingFang-SC-Regular.ttf)
Q4:再次执行python脚本发现登录的提交button没有触发,报 Python3 - Selenium: Element is not currently visible and may not be manipulated
A4:原因是无头浏览器默认的窗口太小,没有显示全form表单;需要设置下显示窗口
from selenium import webdriver
url = "xxxxx"
browser = webdriver.PhantomJS()
browser.set_window_size(1920, 1080) # choose a resolution big enough
browser.get(url)
next_arrow = browser.find_element_by_class_name('submit')
next_arrow.click()
Q5:再次执行pyhton脚本,发现提交后的网络访问是403;排序定位是访问的工程域名有ip白名单设置
A5:将访问的域名在/etc/hosts中添加一行本地转发
5、以上完成后,通过centos6.x 启动pyhton脚本写的phantomjs正常;
6、配置到线上schedule,试跑 pyhton脚本写的phantomjs 出现没有权限操作创建及删除图片文件的权限
Q6:通过python操作指定目录的文件没有权限,添加及删除
A6:问题在于调度启动使用的角色,没有指定目录的操作权限,执行 chmod 777 xxxxx/img ,结果如下: