Какой лучший способ написать поддерживаемое веб-приложение? - PullRequest
5 голосов
/ 09 ноября 2009

Некоторое время назад я написал Perl-скрипт, который входил в мой онлайн-банкинг и каждый день отправлял мне по электронной почте мой баланс и мини-выписку. Я нашел это очень полезным для отслеживания моих финансов. Единственная проблема состоит в том, что я написал это, используя только perl и curl, и это было довольно сложно и трудно поддерживать. После нескольких случаев, когда мой банк менял свою веб-страницу, я устал от ее отладки, чтобы поддерживать ее в актуальном состоянии.

Так, каков наилучший способ написания такой программы таким образом, чтобы ее было легко поддерживать? Я хотел бы написать хорошую, хорошо спроектированную версию на Perl или Java, которую легко будет обновить, когда банк неизбежно возится со своим веб-сайтом.

Ответы [ 7 ]

13 голосов
/ 09 ноября 2009

В Perl что-то вроде WWW::Mechanize уже может сделать ваш скрипт более простым и надежным, поскольку он может находить HTML-формы в предыдущих ответах с сайта. Вы можете заполнить эти формы, чтобы подготовить новый запрос. Например:

my $mech = WWW::Mechanize->new();
$mech->get($url);
$mech->submit_form(
    form_number => 1,
    fields      => { password => $password },
);
die unless ($mech->success);
8 голосов
/ 09 ноября 2009

Комбинация WWW :: Mechanize и Web :: Scraper - два инструмента, которые делают меня наиболее продуктивным. Есть хорошая статья об этой комбинации на катализируемой.орг

6 голосов
/ 09 ноября 2009

Если бы я дал вам один совет, он бы использовал XPath для всех ваших нужд. Избегайте регулярных выражений.

2 голосов
/ 09 ноября 2009

Хмм, только что нашел

Финансы :: Банк :: Natwest

Какой Perl-модуль специально для моего банка! Не ожидал, что это будет так просто.

1 голос
/ 15 декабря 2009

Здесь есть актуальная реализация Ruby:

http://github.com/warm/NatWoogle

1 голос
/ 09 ноября 2009

Многие банки публикуют свои данные в стандартном формате, который обычно используется пакетами личных финансов, такими как MS Money или Quicken, для загрузки информации о транзакциях. Вы можете найти эту зацепку и загрузить ее с помощью того же API, а затем проанализировать данные на своем конце (например, проанализировать документы Excel с помощью Spreadsheet :: ParseExcel и документы Quicken с помощью Finance :: QIF ).

Изменить (ответить на комментарий): Рассматривали ли вы возможность связаться с вашим банком и спросить их, как вы можете программно войти в свою учетную запись, чтобы загрузить финансовые данные? У многих / большинства банков есть API для этого (который использует Quicken и т. Д., Как описано выше).

0 голосов
/ 10 мая 2010

Используйте perl и пакет web :: scraper: текст ссылки

...