利用jsoup解析个人信息----图书馆客户端
上一篇HTTPclient模拟登陆交大图书馆 解决了登陆,登陆之后便可以查看个人信息。个人信息条目较少,如图:
主要就是:姓名、电话、目前借书、积欠金额。
查看其html代码:
下面开始进行解析:
代码
package com.ali.login.spider; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import com.ali.login.bean.UserInfo; /** * 处理用户信息的业务类 * * @author 述言 * */ public class UserInfoHandler { /** * 根据返回的html 解析出用户信息 * * @return */ public static UserInfo getUserInfo(String htmlstr) { Document document = Jsoup.parse(htmlstr); Elements patNameAddress = document.getElementsByClass("patNameAddress"); Elements brs = patNameAddress.select("br"); // for (Element br : brs) { // // System.out.println(br.nextSibling().toString().trim()); // } String phoneNum = brs.get(0).nextSibling().toString(); String curLend = brs.get(1).nextSibling().toString(); int curLendNum = Integer.parseInt(curLend.substring(curLend .indexOf(":") + 1)); System.out.println(curLendNum); String debt = brs.get(4).nextSibling().toString(); debt = debt.substring(debt.indexOf(":") + 1); Elements infos = patNameAddress.get(0).children(); String name = infos.get(0).text(); UserInfo userInfo = new UserInfo(name, phoneNum, curLendNum, debt); return userInfo; } }
在登陆时,将用户的详细信息(加上用户名及密码)封装成userinfo对象,然后将其存入数据库。
测试代码:
boolean isConn = LibraryUtil.login(stuNo, password); /** * 若登陆成功则将信息保存到数据库(学号、密码需要加密)。 */ if (isConn) { String resultHtml = LibraryUtil.getResultHtml(); UserInfo userInfo = UserInfoHandler.getUserInfo(resultHtml); userInfo.setStuNo(stuNo); userInfo.setPassword(password); System.out.println("========"); System.out.println(userInfo.toString()); }
如此便得到了用户的信息
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。