日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JAVA——基于HttpClient的获取帆软FineReport报表爬虫DEMO

發布時間:2024/10/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA——基于HttpClient的获取帆软FineReport报表爬虫DEMO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HttpClient封裝類:https://shentuzhigang.blog.csdn.net/article/details/104274609?

FineReportUtil?

package cn.edu.zstu.myzstu.spyder.ezstu;import cn.edu.zstu.myzstu.utils.consts.Consts; import cn.edu.zstu.myzstu.utils.httpclient.HttpClientUtils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element;import java.util.HashMap; import java.util.Map;/*** @Author ShenTuZhiGang* @Version 1.0.0* @Date 2020-07-12 15:20*/ public class FineReportUtil {public static String getSessionID(String url, String username, String viewlet) throws Exception {String sessionid = "";Map<String, String> header = new HashMap<>();header.put("User-Agent", Consts.AGENT);header.put("Host", Consts.EZLHOST);Map<String, String> params = new HashMap<>();params.put("viewlet", viewlet);params.put("__pi__", "true");params.put("op", "h5");params.put("username", username);String htmlText = HttpClientUtils.doGetRequest(url, header, params);Document doc = Jsoup.parse(htmlText, "UTF-8");Element element = doc.select("script").get(1);sessionid = element.toString().split("get")[7].split("'")[1];return sessionid;} }

DEMO

package cn.edu.zstu.myzstu.spyder.ezstu.query;import cn.edu.zstu.myzstu.model.lib.BookRecord; import cn.edu.zstu.myzstu.spyder.ezstu.FineReportUtil; import cn.edu.zstu.myzstu.utils.consts.Consts; import cn.edu.zstu.myzstu.utils.httpclient.HttpClientUtils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.springframework.stereotype.Component;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;/*** @Author ShenTuZhiGang* @Version 1.0.0* @Date 2020-07-12 15:18*/ @Component public class LibraryQuery {private static final String ezlUrl = Consts.PROTOCOL + Consts.EZLHOST +"/webroot/decision/view/report";public Map<String, List<BookRecord>> getBorrowList(String sid) throws Exception{Map<String, List<BookRecord>> res = new HashMap<>();List<BookRecord> borrowlist = new ArrayList<>();List<BookRecord> historylist = new ArrayList<>();String sessionid = FineReportUtil.getSessionID(ezlUrl,sid,"/yiban/S圖書借閱情況查詢.cpt");Map<String, String> header = new HashMap<>();header.put("User-Agent", Consts.AGENT);header.put("Host", Consts.EZLHOST);header.put("sessionID", sessionid);String htmlText = HttpClientUtils.doPostRequest(ezlUrl, header, inputGetForm(sessionid, "1")).getContent();//System.out.println(htmlText);JSONObject resjson = JSONObject.parseObject(htmlText);JSONArray bookjson = resjson.getJSONObject("pageContent").getJSONArray("detail").getJSONObject(0).getJSONObject("cellData").getJSONArray("rows");String sname = bookjson.getJSONObject(4).getJSONArray("cells").getJSONObject(2).getString("text");if(sname.equals("")) {throw new Exception("201|學號錯誤");}int pagenum = resjson.getInteger("reportTotalPage");int borrownum = Integer.parseInt(bookjson.getJSONObject(6).getJSONArray("cells").getJSONObject(2).getString("text"));int size = pagenum == 1 ? bookjson.size() - 5 : bookjson.size();for(int k = 15; k < size; k ++) {JSONArray bookinfo = bookjson.getJSONObject(k).getJSONArray("cells");String bookname = bookinfo.getJSONObject(2).getString("text");String borrowdate = bookinfo.getJSONObject(5).getString("text");BookRecord bookRecord = new BookRecord();bookRecord.setBookName(bookname);bookRecord.setBorrowDate(borrowdate);if(borrowlist.size() < borrownum || k - 14 <= 2* borrownum) {if(borrowlist.size() == 0 || (borrowlist.size() > 0 && (!bookname.equals(borrowlist.get(borrowlist.size() - 1).getBookName()) || !borrowdate.equals(borrowlist.get(borrowlist.size() - 1).getBorrowDate())))) {borrowlist.add(bookRecord);}else continue;}else{historylist.add(bookRecord);}}for(int i = 1; i < pagenum; i ++) {htmlText = HttpClientUtils.doPostRequest(ezlUrl, header, inputGetForm(sessionid, i+1+"")).getContent();resjson = JSONObject.parseObject(htmlText);bookjson = resjson.getJSONObject("pageContent").getJSONArray("detail").getJSONObject(0).getJSONObject("cellData").getJSONArray("rows");size = i + 1 < pagenum ? bookjson.size() : bookjson.size() - 4;for(int k = 0; k < size; k ++) {JSONArray bookinfo = bookjson.getJSONObject(k).getJSONArray("cells");String bookname = bookinfo.getJSONObject(2).getString("text");String borrowdate = bookinfo.getJSONObject(5).getString("text");BookRecord bookRecord = new BookRecord();bookRecord.setBookName(bookname);bookRecord.setBorrowDate(borrowdate);if(borrowlist.size() < borrownum) {if(borrowlist.size() == 0 || (borrowlist.size() > 0 && (!bookname.equals(borrowlist.get(borrowlist.size() - 1).getBookName()) || !borrowdate.equals(borrowlist.get(borrowlist.size() - 1).getBorrowDate())))) {borrowlist.add(bookRecord);}}else {historylist.add(bookRecord);}}}res.put("borrowlist", borrowlist);res.put("historylist", historylist);return res;}//填充請求信息private Map<String,String> inputGetForm(String sessionid, String pagenum) {Map<String,String > formData = new HashMap<>();formData.put("toVanCharts", "true");formData.put("dynamicHyperlink", "true");formData.put("op", "page_content");formData.put("cmd", "json");formData.put("sessionID", sessionid);formData.put("pn", pagenum);formData.put("__fr_locale__", "zh_CN");return formData;}}

參考文章

https://blog.csdn.net/whyorg/article/details/54018060

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的JAVA——基于HttpClient的获取帆软FineReport报表爬虫DEMO的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品爱啪在线线免费观看 | 国产综合区 | 中文在线а√天堂 | 久久成年 | 毛片亚洲av无码精品国产午夜 | 快射视频在线观看 | 四虎成人av| 中文字幕日韩欧美一区二区三区 | 日本打屁股网站 | 欧美一区二区高清视频 | 美女高潮流白浆视频 | 亚洲女女做受ⅹxx高潮 | 午夜性生活片 | 91看片网页版 | 麻豆免费观看视频 | 亚洲午夜久久久 | 美女一区二区三区视频 | 91手机在线观看 | 亚洲国产成人精品一区二区三区 | 美女被娇喘流出白 | 亚洲xxxx18 | 少妇高潮21p| 欧美97| 日韩欧美国产一区二区在线观看 | 蜜桃在线一区二区三区 | 亚洲v国产v欧美v久久久久久 | 亚洲com| 亚洲熟女乱色综合亚洲av | 久草视频中文在线 | 美日韩精品视频 | 九九黄色| 天堂中文在线资源 | 99香蕉网 | 91精品国产入口 | av网站地址 | 国产伦精品一区二区三区免费迷 | 成人免费视频国产免费 | 91高跟黑色丝袜呻吟动态图 | 国产黄色片在线观看 | 亚洲精品视频在线播放 | 日韩av成人在线观看 | 欧美三级视频在线观看 | 欧美一区二区三区久久成人精品 | 人善交videos欧美3d动漫 | 可以看污的网站 | 国产娇小hdxxxx乱 | 欧美一区欧美二区 | 国产成人精品一区二区三区在线观看 | 日韩乱淫 | 秋霞av网| 奇米中文字幕 | 99er这里只有精品 | 美丽的姑娘在线观看免费 | 日本视频不卡 | 日本夫妻性生活视频 | 免费av手机在线观看 | 中文字幕国产精品 | 成人欧美精品一区二区 | 影音先锋在线看片资源 | 国产crm系统91在线 | 一区二区三区国 | 亚洲一级色| 精品一区二区三区av | 伊人伊人鲁 | 色婷婷激情 | 最新av电影网站 | 亚洲小视频 | 日本aa大片| 寂寞d奶大胸少妇 | 菠萝菠萝蜜网站 | 热99视频| 2021天天操 | 国产成人精品一区二区三区在线 | 亚洲影院中文字幕 | av看片在线 | 精品国产视频一区二区三区 | 灌篮高手全国大赛电影 | 中国一及毛片 | 99re热这里只有精品视频 | 二区国产| 日韩不卡 | 国内精品久久久久 | 欧美日韩精选 | 老司机成人网 | 一本之道av| 一级免费视频 | 少妇无码av无码专区在线观看 | 丁香av | 成年人三级网站 | 天天摸天天做天天爽水多 | 免费中文字幕av | 红桃视频国产 | 香蕉成视频人app下载安装 | 亚洲色欲色欲www在线观看 | 亚洲综合专区 | 国产欧美一区二区精品性色超碰 | 欧美国产不卡 | 久草视频免费在线播放 | 国产男女视频在线观看 |