Loading

Jsoup标签的使用

使用该依赖呢是因为想获取网页的数据


  public static void main(String[] args) throws IOException {
        Document document = Jsoup.connect("url").get();

        System.out.println(document.text());
        //System.out.println(document.replace("<!--",""));
        String title = document.select("title").text();
        System.out.println(title);
        //例如<div class="h-[125]" id="link">  我想去class可以使用getElementsByClass获取
        Elements mb = document.getElementsByClass("h-[125]");
        //可以当前该标签的条数
        System.out.println(mb.size());

        for (int i = 0; i < mb.size(); i++) {
            //例如 <div class="" id="link-index-26"> 我想去获取id 可以使用getElementById去获取
            Element elementById = document.getElementById("link-index-" + i);
            String toString = elementById.toString();
            String replaceLeft = toString.replace("<!--", "");
            String replaceRight = replaceLeft.replace("-->", "");
            elementById = Jsoup.parse(replaceRight, "", Parser.xmlParser());

            //System.out.println("elementById.text()================>"+elementById.text());
            // 这里的意思是获取标签  比如该标签下只有a标签可以使用getElementsByTag来获取 <a href="/md5/e90bb9b7983f4d2c217ee29daa9ae068"/></a> 
            Elements element2 = elementById.getElementsByTag("a");
            for(Element element3 : element2) {
                Elements content = element3.getElementsByClass("relative top-[-1] pl-4 grow overflow-hidden");
                for(Element element4 : content) {
                    Elements content1 = element4.getElementsByClass("truncate text-xs text-gray-500");
                    Elements content2 = element4.getElementsByClass("truncate text-xl font-bold");
                    Elements content3 = element4.getElementsByClass("truncate text-sm");
                    Elements content4 = element4.getElementsByClass("truncate italic");
                    System.out.println(content1.text());
                    System.out.println(content2.text());
                    System.out.println(content3.text());
                    System.out.println(content4.text());
                    System.out.println("======================================");
                }
            }

        }
}
  • Jsoup封装并实现了DOM里面常用的元素遍历方法:
    根据id查找元素: getElementById(String id)
    根据标签查找元素: getElementsByTag(String tag)
    根据class查找元素: getElementsByClass(String className)
    根据属性查找元素: getElementsByAttribute(String key)
    兄弟遍历方法: siblingElements(), firstElementSibling(), lastElementSibling(); nextElementSibling(), previousElementSibling()
    层级之间遍历: parent(), children(), child(int index)
    这些方法会返回Element或者Elements节点对象,这些对象可以使用下面的方法获取一些属性:
    attr(String key): 获取某个属性值
    attributes(): 获取节点的所有属性
    id(): 获取节点的id
    className(): 获取当前节点的class名称
    classNames(): 获取当前节点的所有class名称
    text(): 获取当前节点的textNode内容
    html(): 获取当前节点的 inner HTML
    outerHtml(): 获取当前节点的 outer HTML
    data(): 获取当前节点的内容,用于script或者style标签等
    tag(): 获取标签
    tagName(): 获取当前节点的标签名称
    有了这些API,就像JQuery一样很便利的操作DOM。
posted @ 2023-03-11 17:00  Rzk  阅读(88)  评论(0编辑  收藏  举报