8

I'm building a utility that will hopefully keep my wife in tune with how much money we have available.

I need a simple secure way of logging into my bank account and retrieving the balance.

Something like mechanize is the only method I can think of. I'm not even sure if that would work given the properly authenticated https that banks use.

Any ideas?

4

7 回答 7

3

Write a perl script using LWP::UserAgent. It supports HTTPS connections. The only issue might be if the site requires javascript.

Web Client Programming with Perl has a few examples to get you started if you're not too familiar with perl.

于 2009-03-05T19:18:50.913 回答
3

如果你真的想去那里,请为 Firefox 获取这些扩展:Live HTTP HeadersFirebugFireCookieHttpFox。还下载cURL和可以运行 cURL 命令行任务的脚本语言(或可以直接访问 cURL 库的脚本语言,如 PHP 或 Perl)。

我已经开始在这条路上进行一些幂等的 GET 任务,例如从我的在线经纪公司获取标准普尔报告(我跟踪的股票)的 PDF 文件,以及为我的银行账户下载支票图像。这两项任务都是重复且缓慢的将数据下载到我的计算机的方法,而金融机构没有提供任何使其更容易的方法。

这就是你不应该这样做的原因:(作为捷径,我将把典型的大型银行、经纪公司或其他金融机构称为“BloatBank”)

  1. BloatBank 不太可能公开其用于访问此类信息的 API。所以它可以随时改变,你所有的努力都将付诸东流。每当他们改变他们的机制时,你就必须适应。
  2. 如果 BloatBank 发现您一直在使用自动脚本来尝试访问您的帐户信息,他们可能会因为您违反了他们的服务条款而禁止您。
  3. 您可能会搞砸,并且 BloatBank 服务器上的大杂烩脚本与访问您帐户的脚本之间的交互可能会导致像关闭您的帐户这样的坏事。测试这种脚本非常困难,因为您没有任何关于他们的在线服务如何工作的文档,而且您没有可以弄乱的测试帐户。
  4. (上面的一个变体)你认为你是安全的,因为你正在发出 GET 请求。但是 BloatBank 只是一个对 REST 一无所知的疯狂银行,所以有一些 GET 请求可能会弄乱你的帐户。
  5. 如果其他人确实使用您的脚本恶意嗅探您的在线密码或弄乱您的帐户,则 BloatBank 的任何责任保险都可能会消失,因为您打开了一个安全漏洞。
于 2009-03-05T20:25:15.603 回答
2

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

于 2009-03-05T19:37:56.403 回答
1

你检查过Watir吗?它非常适合自动化 Web 浏览器操作。由于它是用 Ruby 编写的,如果需要,您可以获取结果并将它们存储在数据库中(或通过电子邮件将它们发送给您自己)。

于 2009-03-05T20:31:17.617 回答
0

如果您对 AIR 持开放态度,我会说构建一个 AIR 应用程序。我曾与 mechanize 合作过,我认为这很酷。AIR 通过更丰富的 GUI 为您提供了类似的功能(请参阅 HTMLLoader 和网页的 DOM 操作)。

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

于 2009-03-05T19:22:12.043 回答
0

请,如果您发现这对您的银行来说很容易,请发布您的银行名称。如果我有相同的,我将关闭我的帐户。

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

于 2009-03-05T19:42:46.143 回答
0

我可以尝试为 Quicken 付费并让它完成余额下载。然后我只需要找到一种方法来自动从软件中取出号码。

这样我就不会违反任何服务条款,而且我还降低了安全风险,因为所有“黑客攻击”都在本地进行。

于 2009-03-05T20:31:16.057 回答