使用 nightmarejs,我想遵循几个重定向和自动表单提交,这是由页面脚本调用的。并想得到最后一页。
比如这样的页面内容http://myexample/
:
<html><body>
<form action="http://somewhere/" method="post">
<!-- some params -->
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$('form').submit();
</script>
</body></html>
此页面的脚本元素提交表单。并发送 post 请求http://somewhere/
。然后http://somewhere/
返回 302 响应http://another/
。
为了得到最后一页(http://another/
),我尝试了这样的 nightmarejs 代码:
var Nightmare = require('nightmare');
new Nightmare()
.goto('http://myexample/')
.wait(1000)
.url(function(url) {
console.log(url);
})
.evaluate(function () {
return window.location.href;
}, function (res) {
console.log(res);
})
.run();
我尝试了各种url
方法evaluate
,但我无法获得最后一页。
有没有办法支持这样的案例?也欢迎使用 casperjs 或 phantomjs 的答案。
更新
我已经尝试过 PhanomJS 并且能够跟踪重定向。但是还有另一个问题是连接因SSL Handshake failed
错误而失败。我已经解决了这个添加--ssl-protocol=any
选项。