1

CasperJS を使用して銀行取引明細書のスクレーパーに取り組んでいます。これまでのところ、ログインして明細書のページにアクセスすることができました。ステートメントの最初のページを含むテーブルを取得することはできましたが、完全にする必要があります。

銀行の Web には、.txt ファイル (実際には CSV のようなもの) にエクスポートするオプションがありますが、ダウンロードするには、POST 要求の応答ヘッダーに添付ファイルとして含まれるファイルをダウンロードできる必要があります。ボタンをクリックしてフォームを送信します。

そこで、AJAX 経由で POST を実行し、応答を取得して出力できると考えました。Firebug コンソールでコードを実行してみましたが、動作しますが、何らかの理由で CasperJS では動作しません。

ところで、 --web-security=no を使用してみましたが、まだ機能しません

これは私がそれをやろうとしている方法です:

            this.then(function() {
                eurl = "http://bankurl.com";
                response = this.evaluate(function() {
                params = $("#lForm").serialize();
                $.ajax({
                    type: "POST",
                    url: eurl,
                    data: params,
                    success: function (data) {
                        return data.responseText;
                    },
                    error: function (xhr,status,error){
                        return error;
                    }

                });
            });
            this.echo(response);
        });
4

2 に答える 2

1

あなたが提供したコードでこれをテストすることはできませんでしたが、evaluate().

return __utils__.sendAJAX(url, 'POST', params);

おそらく、次のように CasperJS を呼び出す必要もあります。

casperjs --ignore-ssl-errors=true /path/to/script.js
于 2013-08-22T16:41:18.203 に答える
1

さて、これを解決する方法を見つけるのに苦労した後、私は最終的に ajax 呼び出しを try catch 内に配置し、エラーが eurl 変数を読み取っていないことを発見しました (評価の外で宣言しました)。中に入れて動作しました。ご協力いただきありがとうございます

于 2013-08-23T02:39:56.030 に答える