首页 > 代码库 > 利用jsoup解析个人信息----图书馆客户端

利用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());

		}

如此便得到了用户的信息


参考:jsoup:解析HTML用法小结

利用jsoup解析个人信息----图书馆客户端