Centos6.x使用安装phantomjs,问题总结

安装phantomjs过程及出现的问题

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中添加一行本地转发

  Centos6.x使用安装phantomjs,问题总结_第1张图片

5、以上完成后,通过centos6.x 启动pyhton脚本写的phantomjs正常;

6、配置到线上schedule,试跑 pyhton脚本写的phantomjs 出现没有权限操作创建及删除图片文件的权限

 Q6:通过python操作指定目录的文件没有权限,添加及删除

  

 A6:问题在于调度启动使用的角色,没有指定目录的操作权限,执行 chmod 777 xxxxx/img ,结果如下:

  

 

 

 

你可能感兴趣的:(python,python3,phantomjs-2.1.1)