zoukankan      html  css  js  c++  java
  • java三方---->html解析jsoup的使用

      jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。今天我们就开始jsoup的学习。

    jsoup解析html

    jsoup的主要功能如下:

    • 从一个URL,文件或字符串中解析HTML;

    • 使用DOM或CSS选择器来查找、取出数据;

    • 可操作HTML元素、属性、文本;

     jsoup测试项目的结构如下,首先要下载jsoup的jar包:https://jsoup.org/download

    一、 JsoupTest中我们从网址、文件和字符串中解析html。

    package com.huhx.jsoup;
    
    import java.io.File;
    import java.io.IOException;
    
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.select.Elements;
    
    public class JsoupTest {
        static String html = "<html><head><title>First parse</title></head>"
                + "<body><p id='parseHtml'><font>Parsed HTML into a doc.</font></p></body></html>";
    
        static String fileName = "file/jsoup.html";
        static String url = "http://www.baidu.com";
    
        // 从url中解析
        public static void readFromUrl(String url) {
            try {
                Document document = Jsoup.connect(url).get();
                System.out.println(document.title());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        // 从文件中解析
        public static void readFromFile(String file) {
            File input = new File(file);
            try {
                Document document = Jsoup.parse(input, "UTF-8", "");
                System.out.println(document.getElementsByTag("p").text()); // 通过tag名得到元素
                System.out.println(document.getElementById("divid").text()); // 通过id
                System.out.println(document.getElementsByClass("divclass").attr("id")); // 通过class
                System.out.println(document.getElementsByAttribute("href").attr("id")); // 通过属性
    
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        // 从字符串中解析
        public static void readFromString(String string) {
            Document document = Jsoup.parse(string);
            Elements element = document.getElementsByTag("p");
            System.out.println(element.text());
            System.out.println(element.html());
            System.out.println(element.attr("id"));
        }
    
        public static void main(String[] args) {
            readFromString(html);
            System.out.println("------------------------------------------------------------");
            readFromFile(fileName);
            System.out.println("------------------------------------------------------------");
            readFromUrl(url);
        }
    }

    二、 jsoup.html的内容如下:

    <!doctype html>
    <html lang="en">
    <head>
    <title>Document</title>
    </head>
    <body>
        <p>
            <font>Hello World.</font>
        </p>
        <div id="divid">huhx div id</div>
        <div class="divclass" id="divclassid">huhx div class</div>
        <a href="http://huhx.com" id="huhx">Hello huhx</a>
    </body>
    </html>

    三、运行结果如下:

    Parsed HTML into a doc.
    <font>Parsed HTML into a doc.</font>
    parseHtml
    ------------------------------------------------------------
    Hello World.
    huhx div id
    divclassid
    huhx
    ------------------------------------------------------------
    百度一下,你就知道

    友情链接

  • 相关阅读:
    微信小程序如何获取UnionId详细版---Crypto.js解密
    微信小程序获取用户unionId
    pymysql的使用
    OpenCV 磨皮-Python
    python 识别图片中的人脸,并裁剪人脸,将图片转化成固定大小,并将图片再按照自己的后缀名存储起来
    python遍历文件夹中的所有jpg文件
    numpy matrix 与ndarray的区别
    netty: 解决粘包拆包: 分隔符DelimiterBasedFrameDecoder,定长消息FixedLengthFrameDecoder
    commons-dbutils工具栏的编写
    commons-dbutils 字段名称转换,支持驼峰字段名
  • 原文地址:https://www.cnblogs.com/huhx/p/javaThirdJsoup.html
Copyright © 2011-2022 走看看