我在使用 phantomjs 模擬登陸時,在本機 windows 上完全沒有問題,但是部署到伺服器 docker 中的 ubuntu14.04 上就不行,發現頁面沒有載入完,沒有找到解決的辦法。最簡單的一個例子也會失敗的例如:
from selenium import webdriver
login_url = "https://www.baidu.com"
img_name = './img.png'
if __name__ == '__main__':
driver = webdriver.PhantomJS()
driver.implicitly_wait(20)
driver.get(login_url)
driver.save_screenshot(img_name)
試過隱式等待載入;強制等待 sleep;調整 window 大小;頁面上網域都能 ping 通。都沒有解決,我懷疑是不是安裝 phantomjs 時不太對?先是使用 apt-get 安裝的,但是 --version 提示一個錯誤,然後按照這個錯誤找的答案就是在官網下載壓縮包安裝並配置環境變量,也是這麼做了,就出現這個問題了。
環境:
docker 中的 ubuntu14.04
python2.7
phantomjs 2.1.1 是從官網下載的壓縮套件安裝的
最後載入的介面截圖:
從截圖來看應該是編碼的問題,中文字元都無顯示
試試
python3
吧,2.7對中文編碼一直不太友善 :)1、你可以嘗試把獲取的源代碼保存到文件中,以.html文件保存,用瀏覽器打開看下頁面正常吧。
2、也可能是字串編碼不對,百度一下中文那四個字顯示都不正常,你可以在程式碼中把取得的程式碼轉碼一下,然後再處理截圖。
可以先試試第一步