diff --git a/mywust-core/src/main/java/cn/linghang/mywust/core/parser/undergraduate/UndergradStudentInfoPageParser.java b/mywust-core/src/main/java/cn/linghang/mywust/core/parser/undergraduate/UndergradStudentInfoPageParser.java index 11dc94e..d3c1046 100644 --- a/mywust-core/src/main/java/cn/linghang/mywust/core/parser/undergraduate/UndergradStudentInfoPageParser.java +++ b/mywust-core/src/main/java/cn/linghang/mywust/core/parser/undergraduate/UndergradStudentInfoPageParser.java @@ -2,6 +2,7 @@ package cn.linghang.mywust.core.parser.undergraduate; import cn.linghang.mywust.core.exception.ParseException; import cn.linghang.mywust.core.parser.Parser; +import cn.linghang.mywust.core.util.JsoupUtil; import cn.linghang.mywust.model.global.StudentInfo; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -18,34 +19,34 @@ public class UndergradStudentInfoPageParser implements Parser { } Elements studentElements = table.selectXpath(StudentInfoXpath.STUDENT_NUMBER); - String studentNumber = studentElements.isEmpty() ? null : studentElements.get(0).text().replace("学号:", ""); + String studentNumber = JsoupUtil.getElementText(studentElements).replace("学号:", ""); Elements collegeElements = table.selectXpath(StudentInfoXpath.COLLEGE); - String college = collegeElements.isEmpty() ? null : collegeElements.get(0).text().replace("院系:", ""); + String college = JsoupUtil.getElementText(collegeElements).replace("院系:", ""); Elements majorElements = table.selectXpath(StudentInfoXpath.MAJOR); - String major = majorElements.isEmpty() ? null : majorElements.get(0).text().replace("专业:", ""); + String major = JsoupUtil.getElementText(majorElements).replace("专业:", ""); Elements classElements = table.selectXpath(StudentInfoXpath.CLASS); - String clazz = classElements.isEmpty() ? null : classElements.get(0).text().replace("班级:", ""); + String clazz = JsoupUtil.getElementText(classElements).replace("班级:", ""); Elements nameElements = table.selectXpath(StudentInfoXpath.NAME); - String name = nameElements.isEmpty() ? null : nameElements.get(0).text(); + String name = JsoupUtil.getElementText(nameElements); Elements sexElements = table.selectXpath(StudentInfoXpath.SEX); - String sex = sexElements.isEmpty() ? null : sexElements.get(0).text(); + String sex = JsoupUtil.getElementText(sexElements); Elements birthdayElements = table.selectXpath(StudentInfoXpath.BIRTHDAY); - String birthday = birthdayElements.isEmpty() ? null : birthdayElements.get(0).text(); + String birthday = JsoupUtil.getElementText(birthdayElements); Elements hometownElements = table.selectXpath(StudentInfoXpath.HOMETOWN); - String hometown = hometownElements.isEmpty() ? null : hometownElements.get(0).text(); + String hometown = JsoupUtil.getElementText(hometownElements); Elements nationalityElements = table.selectXpath(StudentInfoXpath.NATIONALITY); - String nationality = nationalityElements.isEmpty() ? null : nationalityElements.get(0).text(); + String nationality = JsoupUtil.getElementText(nationalityElements); Elements idNumberElements = table.selectXpath(StudentInfoXpath.ID_NUMBER); - String idNumber = idNumberElements.isEmpty() ? null : idNumberElements.get(0).text(); + String idNumber = JsoupUtil.getElementText(idNumberElements); return StudentInfo.builder() .studentNumber(studentNumber) diff --git a/mywust-core/src/main/java/cn/linghang/mywust/core/util/JsoupUtil.java b/mywust-core/src/main/java/cn/linghang/mywust/core/util/JsoupUtil.java index d925470..5be4d50 100644 --- a/mywust-core/src/main/java/cn/linghang/mywust/core/util/JsoupUtil.java +++ b/mywust-core/src/main/java/cn/linghang/mywust/core/util/JsoupUtil.java @@ -1,6 +1,7 @@ package cn.linghang.mywust.core.util; import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; public class JsoupUtil { /** @@ -61,4 +62,28 @@ public class JsoupUtil { .ownText(); } } + + /** + * 取元素集合中第一个元素的文本,当elements为null或数量为0时,返回空字符串 + * + * @param elements 元素集合 + * @return 第一个元素的文本 + */ + public static String getElementText(Elements elements) { + return getElementText(elements, 0); + } + + /** + * 取元素集合中指定索引元素的文本,当elements为null时或index超出集合的大小时,返回空字符串 + * + * @param elements 元素集合 + * @return 对应索引元素的文本 + */ + public static String getElementText(Elements elements, int index) { + if (elements == null) { + return ""; + } else { + return index >= elements.size() ? "" : elements.get(index).text(); + } + } } diff --git a/mywust-network-okhttp/pom.xml b/mywust-network-okhttp/pom.xml index cbd8d86..6d29ff2 100644 --- a/mywust-network-okhttp/pom.xml +++ b/mywust-network-okhttp/pom.xml @@ -27,22 +27,6 @@ 3.14.9 - - com.fasterxml.jackson.core - jackson-core - 2.13.4 - - - com.fasterxml.jackson.core - jackson-databind - 2.14.0-rc1 - - - com.fasterxml.jackson.core - jackson-annotations - 2.13.4 - - org.slf4j slf4j-api