我正在开发一个使用selenium(webdriver python绑定)和PhantomJS(无JavaScriptKit脚本与JavaScript API)加载和互动网站的Python程序。
当我在本地 Ubuntu计算机/networking上使用此程序时,它会正确加载网站; 我可以转储所有的HTML:
打印webdriver.page_source
当我在服务器上运行它时,只会打印此行
<html><head></head><body></body></html>
它看起来像服务器用空的 HTML页面回答请求。
这个问题发生在2个网站上,但是这个程序对于第三个网站是正确的。 这让我觉得这是一个networking问题,而不是一个编程问题 (?)。 服务器由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
我不知道如何debugging/了解正在发生的事情。
更新:经过一些testing,我做了一个JS脚本,直接使用PhantomJS转储页面的HTML内容并logging错误。
它给
失败加载地址创buildSSL上下文时出错(错误:140A90C4:SSL例程:func(169):reason(196))
所以这可能与PhantomJS有关,或者阻止它。
在确定该错误似乎来自PhantomJS后,我玩它的选项和参数。
似乎我在服务器上运行的版本(1.9.8)对于我需要与之交互的一些网站来说已经被破坏了。
我在服务器上安装了2.1.1(我在客户端上运行的版本),现在运行良好。