Как бы вы подали заявку на автоматическое получение остатка на вашем банковском счете два раза в день?

Я строю утилиту, которая, будем надеяться, будет держать мою жену в курсе того, сколько у нас денег.

Мне нужен простой безопасный способ входа в свой банковский счет и получения баланса.

Что-то вроде механизации - единственный метод, который я могу придумать. Я даже не уверен, сработает ли это, учитывая правильно аутентифицированные https, которые используют банки.

Есть идеи?

7 ответов

Почему ты не учишь свою жену, как самому войти в банк? Или использовать Quicken (или Mint, и т.д.) и научить ее, как использовать функцию автоматической загрузки?

Напишите Perl-скрипт, используя LWP:: UserAgent. Он поддерживает HTTPS-соединения. Единственная проблема может быть, если сайт требует JavaScript.

Программирование веб-клиента на Perl имеет несколько примеров, с которых можно начать, если вы не слишком знакомы с Perl.

Если вы действительно хотите пойти туда, приобретите следующие расширения для Firefox: Live HTTP Headers, Firebug, FireCookie и HttpFox. Также загрузите cURL и язык сценариев, который может выполнять задачи командной строки cURL (или язык сценариев, такой как PHP или Perl, который имеет прямой доступ к библиотекам cURL).

Я пошел по этому пути для некоторых идемпотентных задач GET, таких как получение PDF-файлов отчетов S&P (акций, которые я отслеживаю) из моего онлайн-брокера, и загрузка чековых изображений для моего банковского счета. Обе задачи - это повторяющиеся и медленные способы загрузки данных на мой компьютер, которые финансовые учреждения не могут облегчить.

Вот почему вы не должны: (в качестве ярлыка я собираюсь назвать архетипический крупный банк, брокерскую или другую финансовую организацию "BloatBank")

  1. BloatBank вряд ли опубликует свой API для доступа к такого рода информации. Так что это может измениться в любое время, и вся ваша тяжелая работа будет напрасной. Всякий раз, когда они меняют свой механизм, вам придется адаптироваться.
  2. Если BloatBank обнаружит, что вы используете автоматические сценарии для доступа к информации своей учетной записи, они могут забанить вас, потому что вы нарушили их условия обслуживания.
  3. Вы можете облажаться, и взаимодействие между множеством скриптов на сервере BloatBank и вашими скриптами, которые обращаются к вашей учетной записи, может привести к плохой вещи, например, к закрытию вашей учетной записи. Тестирование такого рода скриптов чрезвычайно сложно, потому что у вас нет документации о том, как работает их онлайн-сервис, и у вас нет тестовой учетной записи, с которой можно связываться.
  4. (вариант выше) Вы думаете, что вы в безопасности, потому что вы отправляете запросы GET. Но BloatBank - это просто сумасшедший банк, который ничего не знает о REST, поэтому есть несколько запросов GET, которые могут испортить вашу учетную запись.
  5. Если кто-то еще использует ваш сценарий для злонамеренного прослушивания вашего онлайн-пароля или связывания с вашей учетной записью, любое покрытие ответственности BloatBank может исчезнуть, поскольку вы открыли дыру в безопасности.

Вы проверили Watir? Это фантастика для автоматизации действий веб-браузера. А поскольку он написан на Ruby, вы можете взять результаты и сохранить их в БД (или отправить их себе), если это необходимо.

Если вы открыты для AIR, я бы сказал, создать приложение AIR. Я работал с механизировать, и я думаю, что это круто. AIR предоставляет аналогичные функции с более богатым графическим интерфейсом (см. HTMLLoader и DOM-манипулирование веб-страницей).

Если бы я был тобой, я бы просто потянул страницу и манипулировал DOM в соответствии со своими визуальными потребностями.

Я мог бы попытаться заплатить за Quicken и позволить ему делать загрузку баланса. Тогда мне просто нужно найти способ автоматически получить номер из программного обеспечения.

Таким образом, я не нарушаю никаких условий обслуживания и также уменьшаю риск безопасности, поскольку все "взломы" происходят локально.

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

Больше к вашему вопросу. Процесс загрузки веб-страницы внутри вашего кода, а не в браузере, может быть черным искусством, особенно если они связаны с использованием JavaScript. Лучше всего было бы встроить элемент управления IE Web Browser в ваше приложение, а затем имитировать нажатия клавиш и щелчки мыши, чтобы попасть на страницу баланса. Затем очистите HTML для баланса.

Другие вопросы по тегам