「 jsoup」获取 F1 积分榜信息

简介

F1 2019 赛季马上要进入德国站的争夺了!梅奔泼墨色的涂装、维斯塔潘和勒克莱尔连续两站的对决、正在进步的迈凯轮、预计会有的大雨。。。还有没改完的 BUG!哈哈,进入正题。

小小 F1 车迷用 jsoup 做了一个获取 F1 积分榜信息的简单 demo,来水一篇博客~ ?

思路

参考了 https://blog.csdn.net/mzy755423868/article/details/79010697 中的方法。

分析涉及人家网站的信息我就不具体截图了,不过分析还是得有的。

  • 站点中要获取的信息 — 积分榜

积分榜保存在这个网站的一个 ul 中;然后每行的信息保存在一个 li 标签中;每个 li 中 4个 span,分别是 排名、姓名、车队、积分信息。

  • 获取信息并打印

这部分就按照它 积分榜 存储的逻辑查找并输出即可。

代码

  • 代码中各部分的作用已经做了注释,若要实现记得导入相关的 jar 包。

    下载地址:https://jsoup.org/download

  • 关于网站还是不做直接的体现,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 加油啊,不要在家乡再冲出去了!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值