如何制作一个自动获取银行账户余额的应用程序,每天自动获取两次?

8
我正在开发一个实用工具,希望能让我的妻子了解我们可用的资金有多少。
我需要一种简单而安全的方式来登录我的银行账户并检索余额。
mechanize 这样的东西是我所能想到的唯一方法。我甚至不确定这是否适用于银行使用的正确身份验证 https。
有什么想法吗?

你有没有考虑过使用已经存在的系统(并且具有更多功能),例如http://www.mint.com? - TheTXI
是的,这绝对有重新发明轮子的感觉。此外,如果您更改银行或银行更改其登录方法,您将面临难以想象的代码维护负担。 - jason
1
我也一直在思考这个问题,或者说,我一直在请求我的银行开启短信通知功能,每当卡余额发生变化时通知我。那将是非常棒的... - Oskar Duveborn
2
薄荷可能还不错,但我在加拿大。行不通。 - srmark
7个回答

3

3
如果你真的想要这样做,可以在Firefox上安装以下扩展:Live HTTP HeadersFirebugFireCookieHttpFox。此外,还需要下载cURL和一个能够运行cURL命令行任务的脚本语言(或者像PHP或Perl这样直接访问cURL库的脚本语言)。
我已经开始尝试一些幂等的GET任务,比如从我的在线券商获取S&P报告的PDF和下载我的银行账户的支票图像。这两个任务都是重复且缓慢的方式,用来将数据下载到我的计算机上,而金融机构没有提供任何简化这个过程的方法。
以下是你不应该这样做的原因:(为了简便起见,我将典型大型银行、券商或其他金融机构称为“BloatBank”)
  1. BloatBank不太可能公开其API以访问此类信息。因此,它可能随时更改,你所有的努力都将付之东流。每当它们更改其机制时,你都必须进行适应。
  2. 如果BloatBank发现你一直在使用自动脚本尝试访问你的账户信息,他们可能会禁止你的账户,因为你违反了他们的服务条款。
  3. 你可能会出错,BloatBank服务器上各种混乱的脚本与访问你的账户的脚本之间的交互可能会导致像关闭你的账户这样的坏事情发生。测试这种脚本非常困难,因为你没有关于他们在线服务工作方式的任何文档,并且你没有可以搞砸的测试账户。
  4. (上面的变体)你认为你很安全,因为你发出了GET请求。但是BloatBank只是一个不知道REST的疯狂银行,所以有些GET请求可能会破坏你的账户。
  5. 如果其他人使用你的脚本恶意嗅探你的在线密码或干扰你的账户,BloatBank的任何责任保险可能会消失,因为你开了一个安全漏洞。

1

为什么不教你的妻子如何自己登录银行?或者使用 Quicken(或 Mint 等)并教她如何使用自动下载功能呢?


1
我认为他试图删除整个登录过程,以便更轻松地检查余额,从而更有可能跟踪他们的财务状况。 - Ben S
我不喜欢这些程序中的任何一个。它们都依赖于我跟踪我的开支,这是不可能的。 - srmark

1

你有没有看过Watir?它非常适合自动化浏览器操作。而且由于它是用Ruby编写的,如果需要,你可以将结果存储在数据库中(或将其发送到电子邮件中)。


0

如果你对AIR开放,我会建议你构建一个AIR应用程序。我曾经使用过mechanize,我觉得它很酷。AIR提供了类似的功能,但拥有更丰富的图形用户界面(请参考HTMLLoader和对网页的DOM操作)。

如果我是你,我会简单地获取页面并操纵DOM以满足我的视觉需求。


0

如果您发现这对您的银行很容易,请告诉我您的银行名称。如果我也有同样的问题,我将关闭我的账户。

回答您的问题。在代码中加载网页而不是在浏览器中加载可能是一门黑色艺术,特别是如果涉及任何JavaScript。您最好的选择可能是在应用程序中嵌入IE Web浏览器控件,然后模拟按键和鼠标点击以到达您的余额页面。然后抓取HTML以获取余额。


大多数银行都支持通过使用安全cookie来绕过其某些安全功能。获取该cookie副本非常容易。即使没有这个,除非您的银行对每次登录都有CAPTCHA或其他高级测试,否则如果您知道凭据,它也可以轻松自动化。 - Ben S

0

我可以尝试购买Quicken,让它自动下载余额。然后我只需要找到一种自动从软件中提取数字的方法。

这样做不会违反任何服务条款,同时也可以降低安全风险,因为所有的 "黑客" 行为都在本地进行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接