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 ,結果如下: