2

--ignore-ssl-errors=truePhantomJS はデフォルトで多くの HTTPS URL の読み込みに失敗しますが、や などのコマンド ライン フラグを追加することで、それらの多くを機能させることができます--ssl-protocol=any。ただし、これらのフラグが有効になっている場合でも失敗するサイトをいくつか見つけています。たとえば、次のコード スニペットを試してください。

var page = require('webpage').create();

page.onResourceError = function(e){
  console.log("Page resource failed to load. Reason: "+e.errorString);
}

page.open("https://www.bluehaven.com/pool-remodeling/", function(status){
  console.log("Load status: "+status);
});

これら 2 つのフラグを有効にしてこのスクリプトを実行すると、次の出力が得られます。

$ phantomjs --ignore-ssl-errors=true --ssl-protocol=any lib/test_phantom.js 
Page resource failed to load. Reason: SSL handshake failed
Load status: fail

私はかなりググってみましたが、PhantomJS と SSL の失敗に関する議論はすべて、上記の 2 つのコマンド フラグを使用することを推奨しているか、PhantomJS のバグが原因であり、すぐに修正される可能性が低いことを示唆しています。

ファントムJSに上記のURL(および同じHTTPSエラーが発生する他のサイト)をロードさせる方法について、SOの誰かが異なる考えを持っていますか? 私の計画 B は、この SSL エラーを共有しないことを理解しているため、SlimerJS を試すことですが、それにはリスクが伴うため、絶対に必要でない限り実行したくありません。

4

1 に答える 1

3

このプログラムは、phantomjs 1.9.0 を使用する Ubuntu 14.04 で正常に動作します。サーバーはECDHE暗号のみをサポートしているため、システムでこれらの暗号をサポートしていない古いバージョンのOpenSSLを使用していると思います。

于 2015-07-09T18:24:18.973 に答える