5

少し前に、オンライン バンキングにログインして残高と明細書を毎日メールで送信する perl スクリプトを作成しました。家計管理にとても便利だと思いました。唯一の問題は、perl と curl だけを使用して記述したため、非常に複雑で保守が困難だったことです。私の銀行がウェブページを変更したいくつかの例の後、私はそれを最新の状態に保つためにそれをデバッグすることにうんざりしました。

では、そのようなプログラムを保守しやすい方法で作成する最良の方法は何でしょうか? 銀行が Web サイトをいじるのが避けられない場合に簡単に更新できるように、Perl または Java で適切に設計されたバージョンを作成したいと考えています。

4

7 に答える 7

13

Perl ではWWW::Mechanize、Web サイトからの以前の応答で HTML フォームを見つけることができるため、スクリプトをより単純で堅牢なものにすることができます。これらのフォームに入力して、新しいリクエストを準備できます。例えば:

my $mech = WWW::Mechanize->new();
$mech->get($url);
$mech->submit_form(
    form_number => 1,
    fields      => { password => $password },
);
die unless ($mech->success);
于 2009-11-09T11:57:35.073 に答える
8

WWW::MechanizeWeb::Scraperの組み合わせは、私を最も生産的にする 2 つのツールです。catalyzed.orgにその組み合わせに関する素晴らしい記事があります。

于 2009-11-09T12:17:34.290 に答える
6

1 つアドバイスするとしたら、スクレイピングのすべてのニーズにXPathを使用することです。正規表現を避けます。

于 2009-11-09T11:37:06.760 に答える
2

うーん、今見つけた

金融::銀行::ナットウェスト

これは、私の銀行専用の perl モジュールです。こんなに簡単だとは思っていませんでした。

于 2009-11-09T11:20:05.513 に答える
1

ここに現在最新のRuby実装があります:

http://github.com/warm/NatWoogle

于 2009-12-14T22:40:32.603 に答える
1

多くの銀行は、MS Money や Quicken などの個人金融パッケージでトランザクション情報をダウンロードするために一般的に使用される標準形式でデータを公開しています。そのフックを探して同じ API を使用してダウンロードし、最後にデータを解析できます (たとえば、Excel ドキュメントをSpreadsheet::ParseExcelで解析し、Quicken ドキュメントをFinance::QIFで解析します)。

編集 (コメントへの返信): 銀行に連絡して、財務データをダウンロードするためにプログラムでアカウントにログインする方法を尋ねることを検討しましたか? 多く/ほとんどの銀行には、このための API があります (前述のように、Quicken などが利用しています)。

于 2009-11-09T17:54:05.747 に答える
0

perl と web::scraper パッケージを使用: リンク テキスト

于 2010-05-10T13:20:00.260 に答える