首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有在检测到更改时才会刮擦?

只有在检测到更改时才会刮擦?
EN

Stack Overflow用户
提问于 2015-02-10 17:57:19
回答 1查看 86关注 0票数 0

我的银行有一个非常简单的登录系统。使用casperjs,我已经能够提取我的最新帐户余额和我的最后一笔交易。从互联网上抓取数据的方法很多,我只是用Casperjs来测试它的能力。我向银行查询,他们说--只要它是我的银行账户,就没问题。

这是我必须解决的技术问题:银行将每天登录的次数限制在40左右。如果登录的数量超过这一数字。它会把我锁在我的帐户外6个小时。(此外,系统每20分钟记录我一次-与操作无关)

我想弄清楚的是:是否有一种方法只在事务发生且帐户余额有变化时才运行刮取函数?

为了简单起见,通常是在及时的基础上进行刮擦。我能实现什么,这是一个推送通知风格的刮取机制?

目标是在每次事务发生时都得到消息/电子邮件(最大延迟3-4分钟),同时不被锁定在系统之外。

任何有创意的答案都可以。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-10 18:44:02

您如何知道在没有登录的情况下发生了事务?如果网上银行网站编程良好,你将不得不登录。

小算术:

  • 每24小时~40个登录
  • 20分钟后退出
  • 结果每24小时/39~ 37分钟登录一次,不冒锁定风险。
  • 这意味着您最多有17分钟的延迟(如果没有新的信息,这太过了)

很明显你24小时都没醒。

  • 每16小时~40个登录
  • 20分钟后退出
  • 结果每16h/39 ~ 24.6分钟登录一次,不冒锁定风险。
  • 这意味着您最多可以延迟5分钟(这似乎是可以接受的)。

告诉你的银行,他们是否提供了一个API。如果你被锁在你的帐户之外,他们可能会怀疑你的活动,并永久锁定你的帐户。

由于CasperJS是异步的,所以您必须递归地使用您的刮取函数。

代码语言:javascript
复制
var casper = require("casper").create(),
    url = "your bank url",
    counter = 0;

function login(){
    counter++;
    this.thenOpen(url, function(){
        this.fillSelectors("login form selector", {
            "username selector": "username",
            "password selector": "password",
            // more if necessary
        }, true); // automatically submit
    });
}

function scrape(){
    // do your thing
}

function run(){
    if (counter == 39) {
        counter = 0;
        this.wait(8 * 60 * 60 * 1000)
            .then(run);
    } else if (this.exists("selector which shows that you are logged in")) {
        this.then(scrape)
            .wait(30 * 1000)
            .then(run);
    } else if (this.exists("selector which shows that you where automatically logged out")) {
        this.wait(5 * 60 * 1000)
            .then(login)
            .then(run);
    } else {
        this.then(login)
            .then(run);
    }
}

casper.start().then(run).run();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28438531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档