首页 > 其他分享 >优雅地解析HTML文档-Jsoup

优雅地解析HTML文档-Jsoup

时间:2023-06-24 11:33:30浏览次数:47  
标签:Jsoup HTML 文档 println import 解析

一、介绍

Jsoup 是一个流行的 Java HTML 解析器,它主要用于用于从 Web 页面中提取并解析 HTML 数据。它提供了一种简单而优雅的方式,使得开发人员可以快速解析 HTML 并从中提取数据。

二、特性

1. 遵循 HTML5 标准。

2. 解析速度快,灵活性强。

3. API 易于使用,并提供了丰富的文档。

4. 可以直接从UTL、文件或字符串中获取 HTML 内容。

三、原理

Jsoup 解析 HTML 的原理是先将 HTML 文件转换成一个 Document 对象,然后使用类似于 jQuery 的 API,通过选择器语法来读取或操作 HTML。Jsoup 会根据要求从文档中查找元素或属性,并提取所需的内容。

四、使用场景

1. 爬取网页数据

2. 分析和处理 HTML 文档

3. 抓取数据并进行处理

五、注意事项

1. Jsoup 的 API 只能用于解析 HTML,不能解析 XML 文档。

2. 解析过程中出现异常时,需要使用异常处理机制来避免程序异常中止。

3. 在解析之前,需要确认所解析的文档是否是一份合法正确的 HTML 文档。

六、实际场景

1. 案例一

    (1) 场景

    使用Jsoup进行网络爬虫的示例。该示例用于爬起博客文章内容。

    (2) 代码

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

/**
 * 使用Jsoup爬取一个简单页面
 *
 * @author wxy
 * @since 2023-05-31
 */
public class JsoupCase1 {
    public static void main(String[] args) throws IOException {
        Document document = Jsoup
                .connect("https://blog.51cto.com/u_15898747/6107276")
                .get();

        // 获取文章标题
        Elements title = document
                .select("div[class=title]>h1");
        System.out.println("文章标题: ");
        // 打印文章标题文本内容
        System.out.println(title.text());

        // 获取文章内容
        Elements contents = document
                .select("div[id=container]");
        System.out.println("文章内容: ");
        for (Element content : contents) {
            for (Element element : content.children()) {
                // 打印内容标签中的文本内容
                System.out.println(element.text());
            }
        }
    }
}

    爬取结果如下:

优雅地解析HTML文档-Jsoup_Jsoup

标签:Jsoup,HTML,文档,println,import,解析
From: https://blog.51cto.com/u_15898747/6541045

相关文章

  • 前端面试题之HTML和浏览器
    00-一些术语DTD:DocumentTypeDefinition文档类型定义,是一组机器可读规则,定义XML和HTML的特定版本中所有允许元素及它们的属性和层次关系的定义。DTD对HTML文档的声明会影响浏览器的渲染模式。SGML:标准通用标记语言,是一种定义电子文档结构和描述其内容的国际标准语言。HTML:超......
  • 【js学习笔记二】innerHTML和innerText的使用
     目录前言导语代码部分 运行结果总结前言   我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语......
  • QNX-9—QNX官网文档翻译—Programming Overview
    注:翻译网址QNXSoftwareDevelopmentPlatform-->Programming-->Programmer'sGuide-->ProgrammingOverviewhttps://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.prog/topic/overview.html一、概述QNXNeutrinoRTOS架构由微内核和一些协作进程组......
  • 前端-HTML
    1.HTML基础1.1标签语法HTML超文本标记语言——HyperTextMarkupLanguage。超文本:链接标记:标签,带尖括号的文本标签结构标签要成对出现,中间包裹内容<>里面放英文字母(标签名)结束标签比开始标签多/标签分类:双标签和单标签ctrl+b隐藏结构//双标签:<str......
  • HTML-----------HTML基本格式
    1、<!DOCTYPE><!DOCTYPE>位于文档的最前面,用于向浏览器说明当前文档使用那种HTML或XHTML标准规范。只有在开头处使用<!DOCTYPE>声明,浏览器才能将该文档作为有效的HTML文档,并按指定的文档类型进行解析。2、<html><html>位于<!DOCTYPE>之后,也被称为跟标签。跟标签主要用......
  • Java Web项目中使用Freemarker生成Word文档
    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob、ApachePOI、Java2Word、iText等各种方式,其实在从Office2003开始,就可以将Office文档转换成XML文件,这样只要将需要填入的内容放上${}占位符,就可以使用像Freemarker这样的模板引擎将出现占位符的地......
  • [HTML 5] Back Forward Cache
     Blog:https://web.dev/bfcache/ bfcacheisanin-memorycachethatstoresacompletesnapshotofapage(includingtheJavaScriptheap)astheuserisnavigatingaway.Withtheentirepageinmemory,thebrowsercanquicklyandeasilyrestoreitifthe......
  • 最新《Android Framework开发文档》(经典Binder、Handler、AMS等面试题加解析)
    Android架构从从顶层到底层分别为应用程序层、应用程序框架层、运行层(系统Native库和Android运行时环境)和Linux内核层四部分。Framework即应用框架层,是Android架构的关键组成部分,为应用提供各种api和组件来支持开发。如今行业趋于饱和,开发技术越来越卷,Framework也已逐渐成为高薪......
  • [HTML 5] Refer Polices
    Mordenbrowserapply noopenerforyou,butforlagacybrowsermightnot.What noopenerdoesisthat,itset window.openerto null,whichcanpreventevilsitechangetheoriginalsiteurlpointstoaphisingsite. A:iswrong,shouldbepreventnewlyop......
  • [HTML5] Content Security Policy CSP Header
    default-src"none";script-src"self";img-src"self"example.com;style-srcfonts.googleapis.com;font-srcfonts.gstatic.com;<scriptsrc="/js/app.js"></script>:allowbecause script-src"self&qu......