1. 产品
  2.   编辑
  3.   Java
  4.   jsoup
 
  

jsoup:Java HTML解析器

用类似jQuery的简洁语法在Java中抓取、清理和操作HTML

什么是jsoup?

jsoup是一款轻量级但功能强大的Java库,专为处理真实HTML而设计。它提供流畅的API,可以从URL、文件或字符串解析HTML,使用DOM遍历、CSS选择器和现代HTML5方法提取和操作数据。非常适合网页抓取、数据提取和HTML净化,jsoup能像浏览器一样优雅处理不规范标记。

与原始正则表达式方法不同,jsoup提供简洁的对象模型和jQuery风格的方法,简化表单提交、属性修改和文本提取等任务。无依赖且采用MIT许可,是Java开发者处理HTML的首选工具。

jsoup核心优势:

  • 真实HTML处理:像浏览器一样解析混乱的HTML
  • jQuery式语法:熟悉的CSS选择器(如doc.select("div.content")
  • 抓取友好:自动处理重定向、Cookies和表单提交
  • 跨平台:纯Java实现,无原生依赖
  • 安全性:内置XSS防护和HTML净化

完美适用于数据挖掘、网页自动化和内容分析。

GitHub

GitHub 统计

姓名:
语言:
星星:
叉子:
执照:
存储库上次更新于

为什么选择jsoup?

  • 简单易用:直观API支持CSS选择器
  • 稳定可靠:自2009年持续维护
  • 高效性能:针对流式和大文档优化
  • 灵活适配:支持片段、文件或实时URL
  • 整洁输出:美观排版和重新格式化HTML

安装指南

通过Maven或Gradle添加jsoup:

Maven



    org.jsoup
    jsoup
    1.17.2


Gradle


implementation 'org.jsoup:jsoup:1.17.2'

系统要求: Java 8+

代码示例

jsoup实际应用场景:

使用jsoup解析HTML

示例1:从字符串解析文档

当Java字符串包含HTML时,用几行代码即可解析内容或进行修改:

parse(String html, String baseUri)方法将输入HTML转为新文档。baseUri参数用于解析相对URL为绝对地址,应与文档来源URL一致。若不相关或HTML包含<base>元素,可用简化版parse(String html)方法。

示例2:使用CSS选择器查找元素

用CSS选择器直接查找和操作HTML元素:

示例3:修改元素HTML

修改元素HTML内容(示例代码展示Element的HTML设置方法):

高级功能

jsoup专业级HTML处理能力:

  • 表单处理:提交POST数据:

    表单提交

    
        Connection.Response res = Jsoup.connect("https://example.com/login")
            .data("username", "user", "password", "pass")
            .method(Connection.Method.POST)
            .execute();
        Document dashboard = res.parse();
        
    
  • 代理支持:通过代理抓取:

    代理配置

    
        Document doc = Jsoup.connect("https://target.com")
            .proxy("127.0.0.1", 8080)
            .get();
        
    
  • DOM操作:修改HTML结构:

    DOM修改

    
        doc.select("div.ads").remove(); // 移除所有广告
        doc.select("h1").attr("class", "header"); // 添加CSS类
        
    

jsoup对比HTMLUnit

核心差异:

  • 定位:jsoup解析静态HTML;HTMLUnit模拟浏览器(执行JavaScript)
  • 速度:jsoup纯HTML解析更快
  • API风格:jsoup用CSS选择器;HTMLUnit模仿Selenium
  • 适用场景:jsoup适合抓取;HTMLUnit适合动态页面测试
  • 依赖:jsoup零依赖;HTMLUnit需额外库

总结

jsoup是Java开发者的终极HTML工具包,特别适用于:

  • 网页抓取:从任意网站提取数据
  • 数据清洗:净化和标准化HTML
  • 内容分析:解析RSS订阅或网页存档
  • 测试验证:检查应用中的HTML结构

凭借MIT许可和直观API,jsoup是Java处理HTML的最佳选择。

类似产品

 中国人