1. 程式人生 > >Centos6.x使用安裝phantomjs,問題總結

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中新增一行本地轉發

  

5、以上完成後,通過centos6.x 啟動pyhton指令碼寫的phantomjs正常;

6、配置到線上schedule,試跑 pyhton指令碼寫的phantomjs 出現沒有許可權操作建立及刪除圖片檔案的許可權

 Q6:通過python操作指定目錄的檔案沒有許可權,新增及刪除

  

 A6:問題在於排程啟動使用的角色,沒有指定目錄的操作許可權,執行 chmod 777 xxxxx/img ,結果如下: