直接上码

public static String temp_nick = "尊敬的";public static String temp_hello = "您好,您";public static String temp_bill = "的账单信息如下,请详阅:";public static List<TempBillModal> readBillModal(String mailContent){//public static List<TempBillModal> readBill(Document document) {Document document = Jsoup.parse(mailContent);List<TempBillModal> billList = new ArrayList<TempBillModal>();TempBillModal billModal = new TempBillModal();String cardUserStr = document.select("font:containsOwn(尊敬的)").first().text();cardUserStr = cardUserStr.substring(cardUserStr.indexOf(temp_nick)+temp_nick.length(),cardUserStr.indexOf(":"));billModal.setCarduser(cardUserStr);System.out.println("持卡人姓名:"+cardUserStr);//账单月份String billMonthDateStr = document.select("font:containsOwn("+temp_bill+")").first().text();billMonthDateStr = billMonthDateStr.substring(billMonthDateStr.indexOf(temp_hello)+temp_hello.length(),billMonthDateStr.indexOf(temp_bill));String billDateStr = billMonthDateStr.replaceAll("年","-").replaceAll("月","-")+"19";billModal.setBilldate(billDateStr);billMonthDateStr = billMonthDateStr.substring(billMonthDateStr.indexOf("年")+1,billMonthDateStr.indexOf("月"));if(billMonthDateStr.trim().indexOf("0")==0){billMonthDateStr = billMonthDateStr.substring(1,billMonthDateStr.length());}int month = Integer.parseInt(billMonthDateStr);billModal.setBankname("广发银行");billModal.setBillmonth(month);System.out.println("账单月份:"+billMonthDateStr);//银行卡信息Elements elements = document.select("table:contains(注:上期欠款+本期支出-还款)");Element element = elements.get(elements.size() - 4);Element bankElement = element.child(0).child(2);Elements bankDetailElements = bankElement.select("font:containsOwn(人民币)");Map<String,TempBillModal> temMap = new HashMap<String,TempBillModal>();for(Element bankDetail:bankDetailElements){TempBillModal billModal1 = new TempBillModal();billModal1.setCarduser(billModal.getCarduser());billModal1.setBankname("广发银行");billModal1.setBillmonth(billModal.getBillmonth());billModal1.setBilldate(billModal.getBilldate());Element bank = bankDetail.parent().parent().parent();String cardNum = bank.child(0).text();cardNum = cardNum.substring(cardNum.length()-4,cardNum.length());System.out.println("卡号:"+cardNum);billModal1.setCardlastnum(cardNum);temMap.put(cardNum, billModal1);billList.add(billModal1);String needPayStr = bank.child(1).text().replace(",", "");BigDecimal  needPay = new BigDecimal(needPayStr);billModal1.setNeddrepay(needPay);System.out.println("需要还款"+needPayStr);String lowPayStr = bank.child(2).text().replaceAll(",","");BigDecimal lowpay = new BigDecimal(lowPayStr);billModal1.setLowrepay(lowpay);System.out.println("最低还款"+lowPayStr);String payDateStr = bank.child(3).text().replaceAll("/","-");billModal1.setRepaydate(payDateStr);System.out.println("还款日:"+payDateStr);String creditLimitStr = bank.child(5).text().replaceAll(",","");BigDecimal bigDecimal = new BigDecimal(creditLimitStr);billModal1.setCreditlimit(bigDecimal);System.out.println("信用额度:"+creditLimitStr);}Element detailElement = document.select("b:containsOwn(交易明细)").first().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().nextElementSibling();//tr元素Elements detailElements = detailElement.select("table").get(3).child(0).children();for(Element element1:detailElements){Elements table_trs = element1.select("table").get(3).child(0).children();//tbodyString cardNum = table_trs.get(0).text();cardNum = cardNum.substring(cardNum.length()-4,cardNum.length());System.out.println("-----------------卡号"+cardNum);TempBillModal tempBillModal = temMap.get(cardNum);if(tempBillModal == null){continue;}Elements tr_tables_tr = table_trs.get(1).child(0).child(0).child(0).child(0).child(0).child(0).child(0).child(0).children();List<BillDetail> billDetails = new ArrayList<BillDetail>();tempBillModal.setBillDetailList(billDetails);for(Element element2:tr_tables_tr){BillDetail billDetail = new BillDetail();billDetails.add(billDetail);String tradeDateStr = element2.child(0).text();billDetail.setTradedate(tradeDateStr);System.out.println("交易时间:"+tradeDateStr);String detailStr = element2.child(2).text();billDetail.setDetail(detailStr);System.out.println("交易摘要:"+detailStr);String detailmoneyStr = element2.child(3).text().replace(",","");if(StringUtils.isEmpty(detailmoneyStr)){detailmoneyStr="0";}System.out.println("交易金额:"+detailmoneyStr);BigDecimal trademoney = new BigDecimal(detailmoneyStr);billDetail.setMoney(trademoney);}}return billList;}

转载于:https://my.oschina.net/riaway/blog/687121

广发信用卡电子账单读取相关推荐

  1. 民生银行信用卡 java_民生银行信用卡电子账单读取

    /** * 民生银行账单解读 * Created by LYH on 2015/8/28. */ public class MinShengBankBill { public static Strin ...

  2. 信用卡账单 php源码,华夏信用卡电子账单读取

    上码 public static List readBill(String mailContent) { List billList = new ArrayList(); TempBillModal ...

  3. 建设银行信用卡电子账单读取

    上马 public class JianSheBankBill {public static String temp_nick="尊敬的";public static String ...

  4. 民生银行信用卡电子账单读取

    /*** 民生银行账单解读* Created by LYH on 2015/8/28.*/ public class MinShengBankBill {public static String te ...

  5. 农业银行信用卡电子账单读取

    /*** Created by LYH on 2015/8/28.*/ public class NongYeBankBill {public static String temp_hello=&qu ...

  6. 广发信用卡联名南航,申卡这样操作

    广发信用卡用卡的申请和下卡后的额度,一直都是不少信用卡申请者关注的问题 如果你日常经常搭乘南航航班,申请这张广发银行发行的联名卡,下卡几率更大,授信额度也会更高. 这同时也意味着,通过广发南航联名卡的 ...

  7. 卡友们留意:广发信用卡分期手续费标准修改

    广发银行作为全国性的商业银行,在国内几千个银行中排名前二十,是2018年中国互联网金融协会公布的首批25家P2P网贷机构存管银行"白名单"机构,实力不容小觑. 这家1988年成立的 ...

  8. 广发信用卡分期计算方法,不懂的来看看吧!

    相信有很多用过广发分期的卡友有时计算困惑,那么今天就为大家来认真分析一下广发的分期,到底是怎么计算的,广发分期不外乎两种情况,额度内和额度外,额度内属于正常的客户分期,额度外就不一样了,属于优质客户才 ...

  9. 建设銀行信用卡电子账单

    建设銀行信用卡电子账单 http://creditcard.ccb.com posted on 2011-12-02 13:32  lexus 阅读( ...) 评论( ...) 编辑 收藏 转载于: ...

最新文章

  1. phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)
  2. tensorflow 风格迁移
  3. CCS中给工程加入C66x CSL库和头文件
  4. boost::statechart模块实现状态迭代测试
  5. nasm汇编:段的申明、$$、$
  6. TensorFlow模型实现:UNet模型
  7. 一款粉笔最近火了 世界各国数学家为什么集体囤粉笔
  8. Centos7 安装 maven
  9. 开源计算机集群监控Ganglia应用视频
  10. 协议圣经 RTSP(三)
  11. PAT-乙级-1035 插入与归并
  12. Vue异步组件Demo 1
  13. 计算机考试科目一模拟试题,学车科目一模拟考试,最全答题知识点,送给准备考驾照的你...
  14. 如何搭建一个asp网站(具体操作流程——详细步骤+图)(Windows server2003 和 Windows server2008)
  15. 平均年薪50.8万,数据人拿下这个证书有多香?!
  16. 终端代理以及git加速
  17. 解决Past duration X.XXXX too large警告
  18. 技术博客哪家强:CSDN、博客园、简书、开源中国OSChina等博客的详细分析比较
  19. 『简书API:jianshu 基于golang -- 用法介绍 (2)』
  20. Java进阶,Set集合,Map集合

热门文章

  1. 单挂/组队·单/双哈比·法师/狼猎·开源
  2. SSH服务器远程登录虚拟机及传输文件
  3. echarts图例板块默认高亮与鼠标移入高亮实现
  4. 前端之css grid网格布局
  5. Hadoop综合案例 - 聊天软件数据
  6. 【Oracle健康检查脚本加量不加价】对Oracle 10g、11g和12c版本分别提供了只读版,并且加上了MySQL的健康检查...
  7. PHP 中简单 JS弹框
  8. 关于我一个月考研上岸这件事
  9. JAVA实现二维数组遍历
  10. java 防钓鱼_验证表单重复提交(防止钓鱼,密码加密,自定义标签,过滤器)...