Соединение Phantomjs с Facebook не проходит рукопожатие SSL

Я пытаюсь создать веб-скребок для Facebook, используя фантомы. Сбой соединения из-за сбоя рукопожатия SSL. Я получаю тот же результат для твиттера, но гугл работает нормально. Кто-нибудь знает решение для этого? Я использую Phantomjs версии 1.9.7. Я разместил свой код и вывод ошибок ниже.

var system = require('system');
var page = require('webpage').create();
page.open('https://www.facebook.com', function(status){
    console.log("status: " + status);
    if(status === "success"){
        console.log("no error");
    } else {
        console.log("Error opening url \"" + page.reason_url + "\": " + page.reason);
    }
    phantom.exit();

});

выход:

unable to load url: "https://www.facebook.com/"
error code: 6, description: SSL handshake failed
status: fail
Error opening url "undefined": undefined

1 ответ

Решение

phantomjs по умолчанию использует SSL 3.0 при использовании https. Поскольку SSL 3.0 отключен на многих хостах, поскольку он небезопасен, SSL-квитирование не будет выполнено. использование phantomjs --ssl-protocol=any чтобы фантомы использовали более современную версию (TLS1.0 или выше).

Другие вопросы по тегам