无法使用 PhantomJS 和 selenium 驱动程序从 Debian 服务器获取 HTML

无法使用 PhantomJS 和 selenium 驱动程序从 Debian 服务器获取 HTML

我正在开发一个 python 程序,它使用 selenium(webdriver python 绑定)和 PhantomJS(可使用 JavaScript API 编写脚本的无头 WebKit)来加载和与网站交互。

当我在当地的ubuntu 计算机/网络它可以正确加载网站;我可以转储所有 HTML:

打印 webdriver.page_source

当我在服务器,此行仅打印

<html><head></head><body></body></html>

看起来服务器用一个空的HTML 页面。

这个问题发生在两个网站上,但程序在第三个网站上运行正常。这让我认为这是一个网络问题不仅仅是编程问题(?)。服务器由 vps 提供商提供。

从服务器上,我可以 ping 其中一个网站的服务器,该网站的响应是空 HTML,这让我认为我是不是IP 被列入黑名单或被禁止。

以下是 netstat -tulpen 输出(在服务器上运行):

tcp 0 0 0.0.0.0:41207 0.0.0.0:* LISTEN 0 267296 22458/phantomjs
tcp 0 0 0.0.0.0:38457 0.0.0.0:* LISTEN 0 267294 22463/phantomjs
tcp 0 0 0.0.0.0:33667 0.0.0.0:* LISTEN 0 267295 22461/phantomjs

我不知道如何调试这个/了解发生了什么。

更新 :经过一些测试,我制作了一个 JS 脚本,直接使用 PhantomJS 转储页面的 HTML 内容并记录错误。

它给

无法加载地址创建 SSL 上下文时出错(错误:140A90C4:SSL 例程:func(169):原因(196))

所以它可能与 PhantomJS 或阻止它的某些东西有关。

答案1

在确定该错误似乎来自 PhantomJS 后,我尝试了它的选项和参数。

似乎我服务器上运行的版本(1.9.8)对于我需要与之交互的某些网站来说已经损坏。

我在服务器上安装了 2.1.1(我在客户端运行的版本),现在运行良好。

相关内容