欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

获取个人借阅信息---图书馆client

发布时间:2025/3/20 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 获取个人借阅信息---图书馆client 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在上一篇利用jsoup解析个人信息----图书馆client,获得个人基本信息后。便有了进一步的需求:获取当前借阅的具体信息

获取的方法还是一样的。利用jsoup解析借阅信息页面,获得所需数据,封装成LendBookInfo,然后将其增加一个List中。

借阅信息详情页例如以下:

模拟get请求得到其html字符串。代码较简单

/***获取当前借阅信息。 必须在login()调用之后* * @return*/public static String getCurLendInfo() {String curLendInfo = null;/*** * location----------- /patroninfo~S3*chx/1****82/top* * 目标-------------/patroninfo~S3*chx/1****82/items* * tem_location----/patroninfo~S3*chx/1****82* * */HttpGet httpget = null;String tem_location = location.substring(0, location.lastIndexOf("/"));System.out.println("tem_location---->" + tem_location);try {httpget = new HttpGet(baseUrl + tem_location + "/items");response = httpclient.execute(httpget);// 发送get请求int code = response.getStatusLine().getStatusCode();System.out.println(response.getStatusLine());if (code == 200) {if (response != null) {curLendInfo = EntityUtils.toString(response.getEntity(),HTTP.UTF_8);}}} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return curLendInfo;}

得到html后。便能够利用jsoup进行解析。

打开firedebug。进行分析。

代码例如以下:

/*** 获取借阅的数目信息* * @param lendInfoHtml* 借阅信息详情html* @return 借阅信息列表*/public static List<LendBookInfo> getLendBookInfos(String lendInfoHtml) {List<LendBookInfo> lendBookInfos = new ArrayList<>();Document document = Jsoup.parse(lendInfoHtml);Element table = document.getElementsByClass("patFunc").get(0);// 表格Elements items = table.getElementsByClass("patFuncEntry");// 数目信息集合for (Element item : items) {LendBookInfo bookInfo = null;Element ele_title = item.getElementsByClass("patFuncTitle").get(0);// 题名String bookDetail = ele_title.child(0).text();Element ele_barCode = item.getElementsByClass("patFuncBarcode").get(0);// 条形码String barCode = ele_barCode.text();Element ele_status = item.getElementsByClass("patFuncStatus").get(0);// 状态String status = ele_status.text();Element ele_callNumber = item.getElementsByClass("patFuncCallNo").get(0);// 索书号String callNumber = ele_callNumber.text();bookInfo = new LendBookInfo(bookDetail, callNumber, status, barCode);lendBookInfos.add(bookInfo);}return lendBookInfos;}
測试例如以下:


public static void main(String[] args) {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()); String lendInfoHtml = LibraryUtil.getCurLendInfo(); List<LendBookInfo> lendBookInfos = UserInfoHandler .getLendBookInfos(lendInfoHtml); for (LendBookInfo bookInfo : lendBookInfos) { System.out.println(bookInfo); } } }


測试结果:



待续……

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的获取个人借阅信息---图书馆client的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。