依赖
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
挑选了一个学校的官网考研复试的名单 准备爬取
第一步就是 连接然后获取该页面的html
第二步就是 分析html,要爬取的内容
通过分析可以发现,除了表格标题行有class其他都没有,只能使用tr标签爬取
爬取出一个tr行里面有10个td列
除去掉没用的行,开头两行和结尾几个空行
就可以获取里面span标签的内容啦
@Test
public void getWHPUlist() throws IOException {
HashMap<Long, ArrayList<String>> map = new HashMap<>();
Document document = Jsoup.connect("http://sjxy.whpu.edu.cn/info/1110/3055.htm").get();
Elements elements = document.getElementsByTag("tr");
for (int i = 2; i < elements.size(); i++) {
Elements td = elements.get(i).getElementsByTag("td");
int size = td.size();
if (size<10 || StringUtils.isNullOrEmpty(td.get(0).text()))
continue;
ArrayList<String> info = new ArrayList<>();
Long id = new Long(0);
for (int i1 = 0; i1 < size; i1++) {
String span = td.get(i1).getElementsByTag("span").get(0).text();
if (i1 == 0) {
id = new Long(span);
}else {
info.add(span);
}
map.put(id,info);
}
}
for (Map.Entry<Long, ArrayList<String>> longArrayListEntry : map.entrySet()) {
System.out.println("学号:"+longArrayListEntry.getKey());
System.out.println("信息:"+longArrayListEntry.getValue());
}
}
结果