使用 phantomjs 打开页面不完整,是哪里出了问题?

我在使用 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 是从官网下载的压缩包安装的

最后加载的界面截图:
图片描述

阅读 6k
4 个回答

从截图来看应该是编码的问题,中文字符都无显示

试试python3吧,2.7对中文编码一直不太友好 :)

1、你可以尝试把获取的源代码保存到文件中,以.html文件保存,用浏览器打开看下页面正常吧。
2、也可能是字符串编码不对,百度一下中文那四个字显示都不正常,你可以在代码中把获取的代码转码一下,然后再处理截图。
可以先试下第一步

新手上路,请多包涵

安装中文字体……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题