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>
このページのスクリプト要素がフォームを送信します。そして、への投稿リクエスト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
オプションを追加しました。