简介
F1 2019 赛季马上要进入德国站的争夺了!梅奔泼墨色的涂装、维斯塔潘和勒克莱尔连续两站的对决、正在进步的迈凯轮、预计会有的大雨。。。还有没改完的 BUG!哈哈,进入正题。
小小 F1 车迷用 jsoup 做了一个获取 F1 积分榜信息的简单 demo,来水一篇博客~ ?
思路
参考了 https://blog.csdn.net/mzy755423868/article/details/79010697 中的方法。
分析涉及人家网站的信息我就不具体截图了,不过分析还是得有的。
- 站点中要获取的信息 — 积分榜
积分榜保存在这个网站的一个 ul 中;然后每行的信息保存在一个 li 标签中;每个 li 中 4个 span,分别是 排名、姓名、车队、积分信息。
- 获取信息并打印
这部分就按照它 积分榜 存储的逻辑查找并输出即可。
代码
-
代码中各部分的作用已经做了注释,若要实现记得导入相关的 jar 包。
-
关于网站还是不做直接的体现,BASE64了。若要实现的话,就,在线解一下呗!
TestJSoup.java
/*
* 类名:TestJSoup
* 作者:CSDN博主 微末666
* 实现:NoNameMing
*/
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;
public class TestJSoup {
public Document document (String url) {
try {
return Jsoup.connect(url).get();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
Formula1.java
/*
* 作者:NoNameMing
* 作用:从体育网站爬取、打印 F1 积分榜各车手信息
* 参考:https://blog.csdn.net/mzy755423868/article/details/79010697
*/
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Formula1 {
public static void main(String[] args) {
TestJSoup testJSoup = new TestJSoup();
String infoOut;
// BASE64 了网址,嗯。感兴趣的话在线平台解一下吧哈哈。
Document document = testJSoup.document("aHR0cHMlM0EvL3Nwb3J0cy5xcS5jb20vZjEv");
// 获取目标 html 无序列表 ul
Elements elements = document.select("[id=tabs_jfen][class=tabs tab_js]");
// 搜寻 li 标签的元素
Elements elements1 = elements.select("li");
// 格式化输出方式
for (int i = 3; i < 23; i++) {
Element element = elements1.get(i);
// 搜索 li 标签中的 span 标签
Elements elements2 = element.select("span");
// 依次输出各位车手的排名、姓名、车队、积分信息
infoOut = elements2.get(0).text();
System.out.print(infoOut + " ");
infoOut = elements2.get(1).text();
System.out.print(infoOut + " ");
infoOut = elements2.get(2).text();
System.out.print(infoOut + " ");
infoOut = elements2.get(3).text();
System.out.println(infoOut);
}
}
}
结果截图
(Vettel 加油啊,不要在家乡再冲出去了!