python - 使用 phantomjs 打開頁面不完整,是哪里出了問題?
問題描述
我在使用 phantomjs 模擬登陸時(shí),在本機(jī) windows 上完全沒有問題,但是部署到服務(wù)器 docker 中的 ubuntu14.04 上就不行,發(fā)現(xiàn)頁面沒有加載完,沒有找到解決的辦法。最簡單的一個(gè)例子也會(huì)失敗的例如:
from selenium import webdriverlogin_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)
試過隱式等待加載;強(qiáng)制等待 sleep;調(diào)整 window 大小;頁面上域名都能 ping 通。都沒有解決,我懷疑是不是安裝 phantomjs 時(shí)不太對(duì)?先是使用 apt-get 安裝的,但是 --version 提示一個(gè)錯(cuò)誤,然后按照這個(gè)錯(cuò)誤找的答案就是在官網(wǎng)下載壓縮包安裝并配置環(huán)境變量,也是這么做了,就出現(xiàn)這個(gè)問題了。
環(huán)境:docker 中的 ubuntu14.04python2.7phantomjs 2.1.1 是從官網(wǎng)下載的壓縮包安裝的
最后加載的界面截圖:
問題解答
回答1:從截圖來看應(yīng)該是編碼的問題,中文字符都無顯示
回答2:試試python3吧,2.7對(duì)中文編碼一直不太友好 :)
回答3:1、你可以嘗試把獲取的源代碼保存到文件中,以.html文件保存,用瀏覽器打開看下頁面正常吧。2、也可能是字符串編碼不對(duì),百度一下中文那四個(gè)字顯示都不正常,你可以在代碼中把獲取的代碼轉(zhuǎn)碼一下,然后再處理截圖。可以先試下第一步
相關(guān)文章:
