文章插图
前言??经过一段时间的加班,终于是把项目熬上线了 。本以为可以轻松一点,但往往事与愿违,出现了各种各样的问题 。由于做的是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" />