zsxsoft/my-beancount-scripts

CMB Credit Card Issue.

StephenLeeUSTC opened this issue · 7 comments

在我使用的过程中,碰到eml账单文件无法解析的问题,原因是在我的文件中,分隔符有区别。解决问题的方式是:

     # balance = d.select('#fixBand16')[0].text.replace('RMB', '').strip()
-    date_range = d.select('#fixBand38 div font')[0].text.strip()
+    date_range = d.select('#fixBand6 div font')[0].text.strip()
     transaction_date = dateparser.parse(date_range.split('-')[1].split('(')[0])
     transaction_date = date(transaction_date.year, transaction_date.month, transaction_date.day)
     self.date = transaction_date
-    balance = '-' + d.select('#fixBand40 div font')[0].text.replace('¥', '').replace(',', '').strip()
+    balance = '-' + d.select('#fixBand7 div font')[0].text.replace('¥', '').replace(',', '').strip()

如果这个分隔符有可能改变,建议增加一下注释说明?如果有建议的修改但又缺少时间,我也可以帮助提交pr。Thanks

由于我现在没有招商银行的卡了,因此无从确认这个fixBand的改动到底是哪儿的问题。我应当在README里注明一下,提醒大家关注Issue修改自己的脚本。

编程小白想咨询个问题,我用的这个select语句没法使用超过3层,比如:
bands = d.select("#fixBand29 #loopBand2>table>tbody>tr") #这个就不行
bands = d.select("#loopBand2 table tr") #这个就可以
想咨询下,这个问题该怎么解决的?

@Heisenberg 这是CSS选择器,你的#fixBand29 #loopBand2>table>tbody>tr会选择

<div id="fixBand29">balabalabala<div id="loopBand2"><table><tbody><tr>select this</tr></tbody></table></div></div>

你需要自己对照页面的HTML检查选择是否正确

看起来是招行的账单里时间只包含「月日」,没有带分隔符的年月日了。

招商银行「个人网银专业版」是个比较好的选择。可以下载csv格式的信用卡、借记卡的对账单

@wych42
找到了,路径为
招行专业版---信用卡---账户管理---自助对账

可以按月查询一年内的信用卡消费-收入明细
可以按卡号后四位区分哪张信用卡进行的消费
可以下载为CSV文件

今天在使用, 也是无法解析, 可能招行又改格式了~还是下csv吧

@thelittlefox 只能找到按信用卡账单日查询,并且下载也只能pdf,并没有找到下载csv的入口
image