java爬虫。登录央行征信网站

  1 package com.entrym.crawler.test;
  2
  3 import java.util.HashMap;
  4 import java.util.Map;
  5
  6 import org.apache.commons.lang.StringUtils;
  7 import org.apache.http.client.methods.HttpGet;
  8 import org.apache.http.client.methods.HttpPost;
  9 import org.jsoup.Jsoup;
 10 import org.jsoup.nodes.Document;
 11 import org.slf4j.Logger;
 12 import org.slf4j.LoggerFactory;
 13
 14 import com.entrym.crawler.constans.CommonConstants;
 15 import com.entrym.crawler.util.CommonUtil;
 16 import com.entrym.crawler.util.PowerHttpClient;
 17 import com.entrym.crawler.util.verifyCode.Captcha;
 18
 19 /**
 20  * 央行征信报告获取爬虫
 21  * @ClassName: PbccrcCrawler
 22  * @Description: TODO(这里用一句话描述这个类的作用)
 23  *
 24  */
 25 public class PbccrcCrawler
 26 {
 27
 28     private static Logger logger = LoggerFactory.getLogger(PbccrcCrawler.class);
 29     private static String loginUrl = "https://ipcrs.pbccrc.org.cn/page/login/loginreg.jsp";
 30     private static String loginPostUrl = "https://ipcrs.pbccrc.org.cn/login.do";
 31     private static String welcomeUrl = "https://ipcrs.pbccrc.org.cn/welcome.do";
 32     private static String reportUrl = "https://ipcrs.pbccrc.org.cn/reportAction.do";
 33     private static String summaryReportUrl = "https://ipcrs.pbccrc.org.cn/summaryReport.do";
 34     private static String simpleReportUrl = "https://ipcrs.pbccrc.org.cn/simpleReport.do";
 35
 36     private static String host = "ipcrs.pbccrc.org.cn";
 37     private static String userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";
 38
 39     private PowerHttpClient powerHttpClient;
 40     private boolean isLogin=false;//登录状态
 41     private boolean report0=false;//个人信用信息提示
 42     private boolean report1=false;//个人信用信息概要
 43     private boolean report2=false;//个人信用报告
 44
 45     private String task_id=null;
 46
 47     /**
 48      * 登录
 49      * @Title: login
 50      * @Description: TODO(这里用一句话描述这个方法的作用)
 51      * @param @param loginname
 52      * @param @param password    参数
 53      * @return void    返回类型
 54      * @throws
 55      */
 56     public  String login(String loginname ,String password)
 57     {
 58         try
 59         {
 60             powerHttpClient = new PowerHttpClient();
 61             //打开首页
 62             String html = powerHttpClient.getToString(loginUrl);
 63             logger.debug("----首页---",html);
 64
 65             Document doc = Jsoup.parse(html);
 66             String token = doc.select("input[name=org.apache.struts.taglib.html.TOKEN]").val();
 67             String method = doc.select("input[name=method]").val();
 68             String date = doc.select("input[name=date]").val();
 69             String imgUrl = doc.select("img[id=imgrc]").attr("src");
 70             String imgData = "";
 71             if (StringUtils.isNotBlank(imgUrl))
 72             {
 73                 //处理验证码
 74                 imgUrl = "https://ipcrs.pbccrc.org.cn"+imgUrl;
 75                 logger.info(task_id+"Captcha imgUrl = {}",imgUrl);
 76                 HttpGet httpGet = powerHttpClient.getHttpGet(imgUrl);
 77                 httpGet.addHeader("Host", host);
 78                 httpGet.addHeader("User-Agent", userAgent);
 79                 httpGet.addHeader("Referer", loginUrl);
 80
 81                 byte[] imgByte = powerHttpClient.getToByteArray(httpGet);
 82                 Captcha captcha = new Captcha("img");
 83                 CommonUtil.writeByteArrayToFile(imgByte, CommonConstants.RUNTIME_TEMPIMG_FOLDER+captcha.getFilePath());
 84                 System.out.println(CommonConstants.RUNTIME_TEMPIMG_FOLDER+captcha.getFilePath());
 85                 imgData = CommonUtil.consoleScanner();
 86             }
 87
 88             //提交登录
 89             Map<String, String> map = new HashMap<>();
 90             map.put("org.apache.struts.taglib.html.TOKEN", token);
 91             map.put("method", method);
 92             map.put("date", date);
 93             map.put("[email protected]@_", imgData);
 94             map.put("loginname", loginname);
 95             map.put("password", password);
 96
 97             HttpPost httpPost = powerHttpClient.getHttpPost(loginPostUrl);
 98             httpPost.addHeader("Host", host);
 99             httpPost.addHeader("User-Agent", userAgent);
100             httpPost.addHeader("Referer", loginUrl);
101             String html1 = powerHttpClient.postWithMap(map,httpPost);
102             logger.debug("----提交登录结果---",html1);
103
104             HttpGet httpGet1 = powerHttpClient.getHttpGet(welcomeUrl);
105             httpGet1.addHeader("Host", host);
106             httpGet1.addHeader("User-Agent", userAgent);
107             httpGet1.addHeader("Referer", loginPostUrl);
108             String html2 = powerHttpClient.getToString(httpGet1, "");
109             logger.info("----欢迎页面---{}",html2);
110             parseLogin(html2);
111             return html2;
112         } catch (Exception e) {
113             logger.error(task_id+"---登录出现异常:{}",CommonUtil.getExceptionTrace(e));
114         }
115         return null;
116     }
117
118
119     /**
120      * 解析登录和报告状态
121      * @Title: parseLogin
122      * @Description: TODO(这里用一句话描述这个方法的作用)
123      * @param @param html    参数
124      * @return void    返回类型
125      * @throws
126      */
127     private void parseLogin(String html)
128     {
129         if (StringUtils.isBlank(html)) {
130             return;
131         }
132         if (html.contains("欢迎登录个人信用信息服务平台")) {
133             isLogin = true;
134             logger.info(task_id+"----恭喜,登录成功---");
135         }
136
137     }
138
139
140
141     public static void main(String[] args) {
142         PbccrcCrawler pbccrcCrawler = new PbccrcCrawler();
143         pbccrcCrawler.login("88888", "9999999");
144     }
145
146
147 }
时间: 2024-08-17 06:47:15

java爬虫。登录央行征信网站的相关文章

linux环境下pytesseract的安装和央行征信中心的登录验证码识别实战

首先是安装,我参考的是这个 http://blog.csdn.net/xinghun_4/article/details/47860645 我是centos,使用yum yum install python-devel libjpeg libjpeg-devel freetype freetype-devel zlib zlib-devel littlecms littlecms-devel libwebp libwebp-devel libfreetype libfreetype-devel

央行启动我国征信自律组织研究课题

由 央行上海总部与上海市信用研究会联合主办,上海信而富承办的“我国征信自律组织建设课题研讨暨互联网金融发展给征信业带来的机遇和挑战”专题研讨会近日举 行.上海市信用研究会副会长兼秘书长.上海交通大学教授刘海龙主持了研讨会.来自政府.高校.金融机构.征信机构.互联网金融企业的40多位专家学者参与 了研讨. 记者从会上了解到,央行征信管理局已于今年年初在北京和上海同时启动了<我国征信自律组织研究>课题,其中,上海方面是由上海市信用研究会承担此项课题.此次研讨会旨在听取征信业内专家建议,进一步完善课

征信接口之淘宝API接口

小贷公司对用户征信数据的把控只能依赖传统的央行征信这一单一维度,当需要验证用户购买力.住址稳定性.工作单位地址等特征时,往往会很无力. 贷款用户的淘宝数据包含了贷款人的消费能力.收货地址稳定性等特征,在已有的技术方案上,要获取淘宝数据需自行研发爬虫,将碰到以下困难: 1 淘宝登录机制的破解,具体表现在破解人工验证码.用户身份特征.高频IP.异地登录等. 2 通过个人资料页.地址页.订单页的多重内页.二级内页解析数据. 3 当淘宝改版时,解析规则必须同步升级,否则失败. 4 当多用户同时授权淘宝数

个人征信已开放,互联网巨头如何行动

文 苏曼丽 “做小微金融,并不是我们想做金融,不是想赚钱,而是想做信用体系.”阿里巴巴董事局主席马云的这番话基本现实. 1月5日央行发文,要求腾讯征信.芝麻信用等八家机构做好个人征信业务的准备工作,准备时间为6个月. 这次,个人征信市场真的向阿里“芝麻开门”了.互联网企业的征信跟央行的有何不同?“二马”还会给我们带来什么惊喜? 一.跟央行征信有何不同? 1. 央行的信用信息基本是来自于金融机构,笔者曾经打印过自己的信用报告,主要内容是个人身份信息.银行信贷记录.逾期记录,内容较为单一. 2. 但

用户征信的一些看法

案例场景 相信非常多公司都有自己的工卡,须要员工上下班携带工卡.有一次我把工卡遗忘在办公室没有带出来,这下进公司的时候问题来了.保安哥哥直接把我拦下,任凭我怎样举证,也无法进去.结果是让行政同事在系统上查到我的信息,才放我进去. 在这件事情上,两方存在的问题点就是工卡.虽然我用尽各种办法,也无法突破宝安哥的拦截. 不管我提出多少"证据",也无法证明自己,请两方都信任的第三方出身份证明,就解决这个问题了. 非常多时候,站在两方的立场都无法去说服对方的时候,往往第三方的出现,会非常好的解决

【新年第一篇金融科技】征信报告揭秘50问之第一篇

<征信报告揭秘50问> 前言:大家对征信这个词肯定不会陌生,但大家对这个词的由来可能就不是了解的很清晰.其实这两个字已经有2000多年的历史,中国古代最早关于征信的说法出自<左传>"君子之言,信而有征",由此可见古人对信用是非常看重的.信用报告也被喻为"经济×××",所以说有信用走遍天下,无信用寸步难行.道理我们讲通了,那真拿到报告时是否看的懂.怎么养信用.什么才叫好.自己是否属于优质,我相信可能大部分的朋友都不是很精通.心里会有很多的疑问,

网站登录发送短信提醒

前端时间做网站,客户对用户帐户安全要求比较高,要求账户登录需要有短信提醒,下面是实现的一些核心代码分享给大家: 这里面用到的短信接口,是第三方短信接口服务商-动力思维乐信,如果对调用接口不太了解的可以,到他们的网站(www.lx598.com )看下API文档和demo. 主要代码如下: 1.action: /** * 登录 * * @return */ @Action(value = "login") public void login() { PrintWriter out; St

互联网征信中的信用评分模型(转)

摘要:面向小微商户以及个人消费的小微信贷是当前互联网金融的重要发展方向,并且正在经历爆发式增长.在这个增长过程中,如何在没有实物抵押的情况下,通过互联网大数据分析实现快速准确征信是一个非常重要的问题.为此,不同的数据来源将各显神通地为信用评估提供依据.本文将通过一个真实的案例出发,进行分析和探讨,针对用户历史行为数据建立信用评分模型,并通过该模型改进信用评估的预测效果. 关键词: 小微信贷:互联网征信:信用评分:Logistic回归模型 一.业务介绍 行业介绍 小微信贷,我们定义为金额较小,并且

基于大数据技术的手机用户画像与征信研究

内容提要:手机用户画像是电信运营商实现“数据驱动业务与运营”的重要举措.首先,介绍了手机用户画像过程中对个人隐私保护的方法,然后分析手机用户画像的数据来源与大数据实现技术,最后,通过数据样本实例分析手机用户画像在个人征信中的应用. 引言 随着计算机网络技术的不断发展,“数据即资源”的大数据时代已经来临.用户画像是电信运营商为了避免管道化风险,实现“数据驱动业务与运营”的重要举措.用户画像与应用大数据技术对客户分类密切相关,是单个客户的众多属性标签的累积:另一方面,在运营商涉足的消费金融领域,对手