Pergunta

Eu escrevi um script perl há um tempo atrás que entrar na minha banca online e me enviaram meu equilíbrio e um mini-declaração todos os dias. Eu achei muito útil para manter o controle das minhas finanças. O único problema é que eu escrevi apenas usando Perl e onda e foi bastante complicado e difícil de manter. Depois de alguns casos de meu banco mudando sua página I got alimentado de depurá-lo para mantê-lo atualizado.

Então, qual é a melhor maneira de escrever um programa de tal forma que é fácil de manter? Eu gostaria de escrever uma bela versão bem projetado em qualquer Perl ou Java que vai ser fácil de atualização quando o banco inevitavelmente mexer com seu Web site.

Foi útil?

Solução

Em Perl, algo como WWW::Mechanize já pode fazer seu script mais simples e robusto, porque ele pode encontrar formulários HTML nas respostas anteriores do site. Você pode preencher estes formulários para preparar um novo pedido. Por exemplo:

my $mech = WWW::Mechanize->new();
$mech->get($url);
$mech->submit_form(
    form_number => 1,
    fields      => { password => $password },
);
die unless ($mech->success);

Outras dicas

A combinação de WWW :: mechanize e web :: Scraper são as duas ferramentas que me fazem mais produtivo. Há um belo artigo sobre essa combinação na catalisado .org

Se eu fosse para lhe dar um conselho, seria usar XPath para todos seu raspagem precisa. Evite expressões regulares.

Hmm, só encontrei

Finanças :: Banco :: Natwest

O que é um módulo perl especificamente para o meu banco! Não esperava que fosse assim tão fácil.

Um monte de bancos publicam seus dados em um formato padrão, que é comumente usado por pacotes de finanças pessoais, tais como MS Money ou Quicken para informações de download transação. Você pode olhar para esse gancho e download usando a mesma API, em seguida, analisar os dados em seu final (por exemplo, analisar documentos do Excel com Spreadsheet :: ParseExcel , e docs Quicken com Finanças :: QIF ).

Editar (resposta ao comentário): Você já pensou em entrar em contato com seu banco e pedir-lhes como você pode programaticamente entrar em sua conta, a fim de baixar os dados financeiros? Muitos / a maioria dos bancos tem uma API para isso (que Quicken etc fazer uso, como descrito acima).

Há um momento até à data implementação de Ruby aqui:

http://github.com/warm/NatWoogle

Use perl eo pacote web :: raspador: texto do link

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top