【高效开发工具系列】Java读取Html

03-01 1213阅读 0评论

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

【高效开发工具系列】Java读取Html

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

      非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

      博客目录

        • 一.基础介绍
          • 1.需求说明
          • 2.Jsoup 简介
          • 3.Jsoup 的功能
          • 二.基本使用
            • 1. 添加依赖
            • 2. 使用 Jsoup 解析 HTML 文档
            • 3.直接传入 html
            • 4.直接传入 URL

              一.基础介绍

              1.需求说明

              有许多情况下,你可能需要使用 Java 解析 HTML。以下是一些常见的情况:

              1. 网页数据提取: 当你需要从网页中提取特定数据时,例如爬取网页内容并提取标题、链接、表格数据等。HTML 解析是必要的,因为它使你能够以结构化的方式访问和提取所需的信息。

              2. 数据清理和转换: 如果你有一些包含 HTML 标记的文本数据,你可能希望将其清理并转换为纯文本或其他格式。HTML 解析器可以帮助你处理这些标记,提取文本内容。

              3. Web 抓取和爬虫: 在开发 Web 爬虫或抓取工具时,HTML 解析是关键的。你需要解析从网页获取的 HTML 内容,从中提取有用的信息,并进行进一步的处理和存储。

                【高效开发工具系列】Java读取Html,【高效开发工具系列】Java读取Html,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第3张
                (图片来源网络,侵删)
              4. 数据分析: 在进行 Web 数据分析时,你可能需要解析和处理大量的 HTML 数据。这可能涉及从多个网页中提取数据,进行统计分析或生成报告。

              5. 屏幕抓取和自动化: 在自动化测试或屏幕抓取的情境中,你可能需要解析 HTML 来检查页面上的元素、属性或文本。

              6. Web 应用程序开发: 在开发 Web 应用程序时,可能需要从 HTML 表单中提取用户输入,处理提交的数据,或者在服务器端生成动态的 HTML 内容。

              在这些情况下,使用 Java 中的 HTML 解析库(如 Jsoup)可以使你更方便地处理和操作 HTML 文档,从而实现你的需求。

              2.Jsoup 简介

              这个包是 Jsoup,是一个用于解析 HTML 文档的 Java 库。它提供了一种方便的方式来从 HTML 中提取和操作数据。

              3.Jsoup 的功能

              下面是一些 Jsoup 的主要功能以及一个简单的使用示例:

              【高效开发工具系列】Java读取Html,【高效开发工具系列】Java读取Html,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第4张
              (图片来源网络,侵删)
              1. HTML 解析: Jsoup 能够解析 HTML 文档,构建一个 Document 对象,便于进一步操作。

              2. 元素选择器: 提供类似于 CSS 选择器的语法,方便选择 HTML 文档中的特定元素。

              3. DOM 操作: 允许你在 HTML 文档中添加、修改或删除元素。

              4. 属性获取: 能够获取 HTML 元素的属性值。

              5. HTML 输出: 可以将 Document 对象输出为 HTML 字符串。

              二.基本使用

              1. 添加依赖

                  org.jsoup
                  jsoup
                  1.8.3
              
              

              2. 使用 Jsoup 解析 HTML 文档

              import org.jsoup.Jsoup;
              import org.jsoup.nodes.Document;
              import org.jsoup.nodes.Element;
              import org.jsoup.select.Elements;
              public class JsoupExample {
                  public static void main(String[] args) {
                      try {
                          // 从URL加载HTML文档
                          Document document = Jsoup.connect("http://example.com").get();
                          // 通过CSS选择器选择所有h1元素
                          Elements headings = document.select("h1");
                          // 输出所有h1元素的文本内容
                          for (Element heading : headings) {
                              System.out.println("Heading: " + heading.text());
                          }
                      } catch (Exception e) {
                          e.printStackTrace();
                      }
                  }
              }
              

              上述示例演示了从 URL 加载 HTML 文档,使用 CSS 选择器选择所有 h1 元素,并输出它们的文本内容。你可以根据具体需求进一步操作文档的元素,进行数据提取或修改。请注意,需要处理异常,因为 Jsoup 的方法可能会抛出 IOException 等异常。

              3.直接传入 html

              @SpringBootTest
              @AutoConfigureMockMvc
              public class HtmlTest {
                  @Test
                  public void testHelloEndpoint() throws Exception {
                      // 获取html的文档对象
                      Document doc = Jsoup.parse("

              Hello, world!

              "); // 获取页面下id="content"的标签 Element content = doc.getElementById("answer_54474042"); // 获取页面下的a标签 Elements answersMoney = content.getElementsByClass("Answers_Money"); final String text = answersMoney.text(); System.out.println(text); // 定义正则表达式,匹配小数部分 String regex = "\\d+\\.\\d+"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(text); // 查找匹配的部分 if (matcher.find()) { String result = matcher.group(); System.out.println("提取到的数字为: " + result); } else { System.out.println("未找到匹配的数字"); } } }

              4.直接传入 URL

              @SpringBootTest
              @AutoConfigureMockMvc
              public class HtmlUrlTest {
                  @Test
                  public void testHelloEndpoint() throws Exception {
                      // 访问 URL 并获取 HTML 内容
                      Document doc = Jsoup.connect("https://ask.csdn.net/questions/8058214/54474042?username=qyj19920704").get();
                      // 获取页面下id="content"的标签
                      Element content = doc.getElementById("answer_54474042");
                      // 获取页面下的a标签
                      Elements answersMoney = content.getElementsByClass("Answers_Money");
                      final String text = answersMoney.text();
                      System.out.println(text);
                      // 定义正则表达式,匹配小数部分
                      String regex = "\d+\.\d+";
                      Pattern pattern = Pattern.compile(regex);
                      Matcher matcher = pattern.matcher(text);
                      // 查找匹配的部分
                      if (matcher.find()) {
                          String result = matcher.group();
                          System.out.println("提取到的数字为: " + result);
                      } else {
                          System.out.println("未找到匹配的数字");
                      }
                  }
              }
              

              觉得有用的话点个赞 👍🏻 呗。

              ❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

              💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

              🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

              【高效开发工具系列】Java读取Html


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1213人围观)

还没有评论,来说两句吧...

目录[+]