我遇到了 phantomjs 无法连接到网站的问题,如那些调试日志所示:
Network - Resource request error: QNetworkReply::NetworkError(TimeoutError) ( "Socket operation timed out" ) URL: "https://google.com/"
代码就这么简单,通常在网站记录后截取屏幕截图。
var page = require('webpage').create();
page.onConsoleMessage = function(msg) {
console.log('CONSOLE: ' + msg);
};
page.open('https://google.com/');
page.onLoadFinished = function() {
console.log('super launch');
page.render('google.png');
console.log('super end');
phantom.exit();
}
但是,屏幕截图没有拍摄,很明显PhantomJS没有连接到 https://google.com
与从文档中获取代码的屏幕截图相同:
var page = require('webpage').create();
page.open('http://github.com/', function() {
page.render('github.png');
phantom.exit();
});
将输出:
Network - Resource request error: QNetworkReply::NetworkError(TimeoutError) ( "Socket operation timed out" ) URL: "http://github.com/"
一个是HTTPS,一个是HTTP,没有一个工作。
我也在防火墙中启用了PhantomJS。
我尝试了测试套件,色轮.js工作得很好(评估脚本 + 在创建的页面上合成图像),但 technews.js 在示例中不存在\
我还尝试使用 --ignore-ssl-errors=true 和 --ssl-protocol=tlsv1,以及 --ssl-protocol=any,没有任何改变。
这是怎么回事?
谢谢你的时间。
最后,我找到了问题的答案,虽然很困难,但这可能很有趣。
路径必须是ISO 32(我相信),并且我有一个包含非ISO 32字符的父文件夹。只需将其移动到完全兼容的路径即可使脚本正常工作。
道德:英语无处不在;)