【问题标题】:PhantomJS 408 error "Socket operation timed out"PhantomJS 408 错误“套接字操作超时”
【发布时间】:2016-06-14 19:56:35
【问题描述】:

我在尝试打开与 PhantomJS 代码位于同一服务器上的网页时遇到此错误。 PhantomJS 可以打开任何其他网页(ssl 与否),但不会打开我服务器上的任何网页。我总是收到这个错误,而且信息很少,实际上没有,“套接字操作超时”对 PhantomJS 意味着什么。

我正在运行 CentOS 6.6 和 PhantomJS 1.9.8。我已经尝试了几个 PhantomJS 版本,包括最新的 2.1.1,但我得到了同样的错误。

我的应用程序的开发版本在 Ubuntu 14.04 上完美运行,但似乎无法在我的生产服务器上运行。

我确实很幸运地在这台服务器上打开了从另一台服务器工作的网页(基本上是远程访问)。

我的服务器(只是运行 Wordpress)上是否有任何东西可以阻止 PhantomJS?我唯一能想到的是我安装了 SSL,但非 SSL 页面也不起作用。

我已经尝试过命令行以及 php-phantomjs 和 wkhtmlpdf 并且总是得到 408 错误,除非我尝试另一个具有不同 IP 地址的网页(谷歌等)。

关于可能是什么问题的任何线索?

【问题讨论】:

  • 如果有人读过这篇文章并想知道同样的问题 - 我发现我的客户端的服务器不允许自我 ping 或自我 wget/curl。我通过使用我的开发服务器作为 PhantomJS 的代理解决了我的问题,所以我可以 curl 我的客户端服务器。

标签: javascript php web-scraping centos phantomjs


【解决方案1】:

在我的情况下,我尝试在同一台机器上使用 phantomjs 获取页面作为图片。我将 127.0.0.1 mysite.app 放在 /etc/hosts 中。我正在经营 laravel 宅基地。

我尝试了所有可能的选项与 1.9 的组合,最后我意识到 1.9 版有问题,因为当我切换到 2.1.1 版时,状态 408 消失了,一切都很好。

【讨论】:

    【解决方案2】:

    尝试更改 PhantomJS 使用的默认用户代理

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-25
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    相关资源
    最近更新 更多