受到利用『爬虫』 折衷解决 个人支付宝支付系统 ---- 获取账单信息这个帖子的启发,开发了一个 Node.js 的版本,原理是一样的,都是使用 Selenium 操作 PhantomJS 模拟用户登录。
源码地址: https://github.com/lmk123/alipay-bills 欢迎 Star 👏
使用方式:
const alipayBills = require('alipay-bills')
// setUser 方法只能调用一次,同时请确保你的用户名和密码是正确的,alipay-bills 没有处理密码错误的情况。
alipayBills.setUser('用户名', '密码')
alipayBills.query().then(bills => {
// bills 是一个数组,数组中每一项的结构为:
//{
// day: string - 日期,如 '2017.08.15'
// time: string - 具体时间,如 '04:10'
// name: string - 对应「我的账单高级版」的「名称」
// orderNo: string - 对应「我的账单高级版」的「商户订单号|交易号」
// target: string - 对应「我的账单高级版」的「对方」
// amount: string - 对应「我的账单高级版」的「金额|明细」
// status: string - 对应「我的账单高级版」的「状态」
//}
})
目前会在控制台输出日志,差不多像这样:
正在跳转到登陆页……
正在输入用户名……
正在输入密码……
正在点击登陆按钮……
点击登陆按钮无反应,即将重试。
尝试登陆时失败,正在重试……
正在跳转到登陆页……
正在输入用户名……
正在输入密码……
正在点击登陆按钮……
正在等待浏览器跳转到账单页……
登陆成功
[ { day: '2017.08.16',
time: '04:41',
name: '余额宝-2017.08.15-收益发放',
orderNo: '流水号:1234567789',
target: '天弘基金管理有限公司',
amount: '+ 0.01',
status: '支付成功' } ]
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.