Sre*_*ag 103 https screen-scraping phantomjs
我正在使用以下基于loadspeed.js示例的代码打开一个https://站点,该站点也需要http服务器身份验证.
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();
});
}
Run Code Online (Sandbox Code Playgroud)
它无法一直加载页面.这可能有什么问题?安全网站的处理方式是否有所不同?但是,可以从浏览器成功访问该站点.
我现在刚刚开始使用Phantom并发现即使我没有继续解决这个问题也不能停止玩游戏.
JLa*_*rky 151
我尝试了Fred和Cameron Tinker的答案,但只有--ssl-protocol =任何选项似乎对我有所帮助:
phantomjs --ssl-protocol=any test.js
Run Code Online (Sandbox Code Playgroud)
另外我认为--ssl-protocol=any使用加密应该更安全,但是--ignore-ssl-errors=true会忽略(duh)所有ssl错误,包括恶意错误.
Cam*_*ker 121
问题很可能是由于SSL证书错误造成的.如果使用--ignore-ssl-errors = yes选项启动phantomjs ,它应该继续加载页面,如果没有SSL错误那样:
phantomjs --ignore-ssl-errors=yes [phantomOptions] script.js [scriptOptions]
Run Code Online (Sandbox Code Playgroud)
我已经看到一些网站在错误地实现他们的SSL证书或者他们已经过期等方面存在问题.有关phantomjs的完整命令行选项列表,请访问:http://phantomjs.org/api/command-line . HTML.我希望这有帮助.
Mic*_*cah 71
请注意,截至2014-10-16,PhantomJS默认使用SSLv3打开HTTPS连接.随着最近宣布的POODLE漏洞,许多服务器都禁用了SSLv3支持.
要解决这个问题,您应该能够运行PhantomJS:
phantomjs --ssl-protocol=tlsv1
Run Code Online (Sandbox Code Playgroud)
希望PhantomJS能够尽快更新,使TLSv1成为默认值而不是SSLv3.
Fre*_*red 24
遇到同样的问题......
--ignore-ssl-errors = yes还不足以为我修复它,不得不再做两件事:
1)改变用户代理
2)尝试了所有的ssl-protocols,唯一有效的有问题的页面是tlsv1
希望这有帮助......
Joj*_*jje 15
我遇到了同样的问题(casperjs 1.1.0-beta3/phantomjs 1.9.7).使用--ignore-ssl-errors = yes和--ssl-protocol = tlsv1解决了它.仅使用其中一个选项并不能解决这个问题.
| 归档时间: |
|
| 查看次数: |
67218 次 |
| 最近记录: |