java中怎么利用jsoup爬取数据并解析
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,java中怎么利用jsoup爬取数据并解析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.首先分析下要爬的数据 :a.
千家信息网最后更新 2026年11月01日java中怎么利用jsoup爬取数据并解析
java中怎么利用jsoup爬取数据并解析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1.首先分析下要爬的数据 :

a.获取到请求考勤的接口 ,网站开发工具就能抓到比较顺利(这里我登录没有搞定,迂回了一下。后面会记录实现方式)
b.分析数据格式,简单的html-table表格 nice!
二 、 获取考勤数据并整理输出到excel
这里爬数据我用了jsoup ,处理数据用了dom4j
maven引入
org.jsoup jsoup 1.12.1 dom4j dom4j 1.6.1
代码如下:
/** * 模拟请求获取数据 * * @param userId 用户id * @param date 日期 */ @Override public ListgetPunchList(Integer userId, String date) throws Exception { UserBean user = userMapper.getUser(userId);//拼装请求地址、参数和必要的请求头信息 StringBuilder url = new StringBuilder(); url.append("http://xxxxxx.com/newkaoqin?userid="); url.append(userId); url.append("&seldate="); url.append(date); Connection con2 = Jsoup.connect(url.toString()); con2.header("User-Agent", USER_AGENT); con2.header("Host", HOST); con2.header("Referer", REFERER); con2.header("Cookie", getCookie()); Response response = con2.ignoreContentType(true).method(Method.GET).execute();//处理返回的数据 String body = response.body(); Document doc = Jsoup.parse(body);//定位到要解析的位置 选择器可以任意选择。 Elements tab2 = doc.getElementsByClass("tab2");//因为后面有很多无用数据,我们只用第一个所以获取第一个数据 Element first = tab2.first();// first可能为空 Elements tr = first.select("tr");//处理数据 KaoQinData 是考勤数据的实体。统计后返回实体的集合 List kaoQinData = new ArrayList<>(); KaoQinData kaoQin; for (Iterator cit = tr.iterator(); cit.hasNext(); ) { Element tr1 = cit.next(); Elements td = tr1.select("td"); if (td.size() > 0) { Element punchDateEle = td.get(0); String punchDateStr = punchDateEle.text(); Element punchTimeEle = td.get(4); String punchTimeStr = punchTimeEle.text(); if (!StringUtils.isEmpty(punchTimeStr)) { String substring = punchTimeStr.substring(0, punchTimeStr.indexOf(":")); Integer integer = Integer.valueOf(substring); if (integer >= 20) { System.out.println(punchDateStr + "," + punchTimeStr); kaoQin = new KaoQinData(user.getRealName(), punchDateStr, punchTimeStr); kaoQinData.add(kaoQin); } } } } return kaoQinData; }
这里基本上就差不多了。输出excel什么的。随便啦 喜欢用什么就用什么;
附:顺便说一下,我因为没有搞定自动登录获取cookie,偷巧迂回了一下,
1.在项目中创建了一个文件专门存放cookie,像这样:

2.因此写了一个接口用来更新cookie的接口,把新的cookie写上去覆盖cookie文件。
3.使用的时候获取cookiefile文件内的cookie。(有点麻烦,后面有空再研究下自动登录)
/** * 获取coockie. * @return * @throws IOException */ private String getCookie() throws IOException { int num; char[] buf = new char[1024]; File file = new File(COOKIE_FILEPATH); if (!file.exists()) { file.createNewFile(); } FileReader fileReader = new FileReader(file.getPath()); StringBuilder stringBuilder = new StringBuilder(); while ((num = fileReader.read(buf)) != -1) { stringBuilder.append(buf, 0, num); } return stringBuilder.toString(); }看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
数据
接口
文件
处理
登录
考勤
实体
分析
帮助
输出
迂回
选择
清楚
必要
差不多
代码
位置
内容
参数
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
互联网科技有限公司经营范围
科技制造互联网公司
互联网 科技创新
世界互联网领先科技成果
壕鑫互联网络科技
互联网科技上市公司
有木互联网科技
富国互联网科技创新基金
承德科技产业互联网发展
现代互联网科技股
互联网对科技的发展
岳阳华臻互联网科技有限公司
互联网科技与大数据专业
黑云互联网科技有限公司
互联网科技股为什么大涨
新氧科技和美国互联网有关系吗
艺电能源互联网科技有限公司招聘
上海万顺科技互联网有限公司招聘
绵阳真晨互联网科技有限公司
互联网新科技
互联网和科技技术
互联网通讯科技
极限挑战互联网科技
深圳期待互联网科技
湖北码尼互联网科技有限公司电话
银川新华互联网科技学校联系电话
晋城互联网科技
沐思想互联网科技有限公司
马化腾互联网科技教学