建设银行联行号查询 联行号查询


建设银行联行号查询 联行号查询

文章插图
前言??经过一段时间的加班,终于是把项目熬上线了 。本以为可以轻松一点,但往往事与愿违,出现了各种各样的问题 。由于做的是POS前置交易系统,涉及到和商户进件以及交易相关的业务,需要向上游支付机构上送“联行号”,但是由于系统内的数据不全,经常出现找不到银行或者联行号有误等情况,导致无法进件 。
??为了解决这个问题,我找上游机构要了一份支行信息 。好家伙,足足有14w条记录 。在导入系统时,发现有一些异常的数据 。有些是江西的银行,地区码竟然是北京的 。经过一段时间排查,发现这样的数据还挺多的 。这可愁死我了,本来偷个懒,等客服反馈的时候,出现一条修一条 。
??经过2分钟的思考,想到以后每天都要修数据,那不得烦死 。于是长痛不如短痛,还不如一次性修了 。然后我反手就打开了百度,经过一段时间的遨游 。发现下面3个网站的支行信息比较全,准备用来跟系统内数据作对比,然后进行修正 。
  • http://www.jsons.cn/banknum/
  • http://www.5cm.cn/bank/支行编号/
  • https://www.appgate.cn/branch/bankBranchDetail/支行编号
分析网站
建设银行联行号查询 联行号查询

文章插图
??输入联行号,然后选择查询方式,点击开始查询就可以 。但是呢,结果页面一闪而过,然后被广告页面给覆盖了,这个时候就非常你的手速了 。对于这样的,自然是难不倒我 。从前端的角度分析,很明显展示结果的table标签被隐藏了,用来显示广告 。于是反手就是打开控制台,查看源代码 。
建设银行联行号查询 联行号查询

文章插图
【建设银行联行号查询 联行号查询】
经过一顿搜寻,终于是找到了详情页的地址 。
建设银行联行号查询 联行号查询

文章插图
??通过上面的操作,我们要想爬到数据,需要做两步操作 。先输入联行号进行查询,然后进去详情页,才能取到想要的数据 。所以第一步需要先获取查询的接口,于是我又打开了熟悉的控制台 。
建设银行联行号查询 联行号查询

文章插图
??从上图可以发现这些请求都是在获取广告,并没有发现我们想要的接口,这个是啥情况,难道凭空变出来的嘛 。并不是,主要是因为这个网站不是前后端分离的,所以这个时候我们需要从它的源码下手 。
建设银行联行号查询 联行号查询

文章插图
<html> <body>  <form id="form1" class="form-horizontal" action="/banknum/" method="post">    <div class="form-group">     <label class="col-sm-2 control-label"> 关键词:</label>     <div class="col-sm-10">      <input class="form-control" type="text" id="keyword" name="keyword" value=https://www.doubo5.com/"102453000160" placeholder="请输入查询关键词,例如:中关村支行" maxlength="50" />
清空输入框
通过分析代码可以得出:
  • 请求地址:http://www.jsons.cn/banknum/
  • 请求方式:POST
  • 请求参数: keyword: 联行号txtflag :1
我们可以用PostMan来验证一下接口是否有效,验证结果如下图所示:
建设银行联行号查询 联行号查询

文章插图
??剩下的两个网站相对比较简单,只需要更改相应的联行号,进行请求就可以获取到相应的数据,所以这里不过多赘述 。
爬虫编写??经过上面的分析了,已经取到了我们想要的接口,可谓是万事俱备,只欠代码了 。爬取原理很简单,就是解析HTML元素,然后获取到相应的属性值保存下来就好了 。由于使用Java进行开发,所以选用「Jsoup」来完成这个工作 。

秒懂生活扩展阅读