1. ホーム
  2. https

[解決済み] PhantomJS が HTTPS サイトを開くのに失敗する。

2022-12-13 07:27:58

質問

私はloadspeed.jsの例に基づいて以下のコードを使用して、同様にhttpサーバー認証を必要とするhttps://サイトを開いています。

var page = require('webpage').create(), system = require('system'), t, address;

page.settings.userName = 'myusername';
page.settings.password = 'mypassword';

if (system.args.length === 1) {
    console.log('Usage: scrape.js <some URL>');
    phantom.exit();
} else {
    t = Date.now();
    address = system.args[1];
    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('FAIL to load the address');
        } else {
            t = Date.now() - t;
            console.log('Page title is ' + page.evaluate(function () {
                return document.title;
            }));
            console.log('Loading time ' + t + ' msec');
        }
        phantom.exit();
    });
}  

常にページの読み込みに失敗しています。何が問題なのでしょうか?セキュリティで保護されたサイトは、何か別の方法で処理されるのでしょうか?ブラウザからは正常にアクセスできるのですが。

私は今ファントムを始めたばかりで、この問題で前進していないにもかかわらず、遊んでいるのを止めるにはあまりに良すぎると感じています。

どのように解決するのですか?

FredさんやCameron Tinkerさんの回答も試してみましたが、ただ --ssl-protocol=any オプションだけが役に立ったようです。

phantomjs --ssl-protocol=any test.js

また、私は、より安全な方法であるべきだと思います。 --ssl-protocol=any を使う方がずっと安全だと思います。 --ignore-ssl-errors=true は悪意のあるものも含めてすべての ssl エラーを無視します (当たり前ですが)。