jsoup如何读取html

Jsoup.parse() 默认按HTML5模式解析,自动补全结构,片段内容需通过doc.body().children()遍历;传入字符串需注意编码匹配,空值会抛异常;远程加载需设置User-Agent、超时等参数;读取文件要注意路径基准和真实编码;解析后应验证outerHtml长度、title及body存在性。Jsoup.parse() 怎么解析 HTML 字符串直接用 Jsoup.parse() 就能从字符串生成 Document,但必须注意:它默认按「HTML5 模式」解析,会自动补全缺失的 <html>、<body> 等结构。如果你传入的是纯片段(比如一段 <p>Hello</p><div>World</div>),它也能工作,但节点层级可能和预期不同。传入不完整 HTML 片段时,doc.body().children() 才是你真正想遍历的内容,别直接 doc.children() ------ 那里可能包着 <head> 和自动生成的 <body>如果字符串含中文或特殊符号,且没指定编码,parse(String) 会按 UTF-8 解码;若源内容实际是 GBK,就会乱码,此时应改用 Jsoup.parse(html, "UTF-8") 或先转码空字符串或 null 传给 parse() 会抛 IllegalArgumentException,务必提前判空Jsoup.connect() 加载远程 URL 为什么常失败不是代码写错,而是默认行为太"干净":它不带 User-Agent、不接受重定向、超时仅 3 秒、遇到 4xx/5xx 直接抛 HttpStatusException。绝大多数网站会拦截无头请求。必加请求头:.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36")允许重定向(如跳登录页):.followRedirects(true)设合理超时:.timeout(10000)(单位毫秒)忽略 HTTP 错误状态码(比如返回 403 但页面仍有数据):.ignoreHttpErrors(true)需要登录态?用 .cookie("SESSIONID", "xxx") 或 .cookies(Map) 注入读取本地 HTML 文件要注意什么编码和路径Jsoup.parse(File, String charsetName) 是安全的选择,但两个坑很隐蔽:文件路径用相对路径时,基准是 JVM 启动目录,不是项目根目录,也不是 src/main/resources;推荐用 getClass().getResource("/page.html").getFile() 获取绝对路径charsetName 必须和文件真实编码严格一致;记事本保存的 ANSI 文件在 Windows 上其实是 GBK,写 "UTF-8" 就会乱码------建议先用编辑器确认编码,或统一用 UTF-8 保存 HTML如果文件含 BOM(尤其 UTF-8 with BOM),parse() 可能解析出奇怪的零宽字符,可用 Files.readString(path, StandardCharsets.UTF_8).strip() 预处理Document 对象拿到后,怎么确认 HTML 真被读进来了别急着 select(),先做三件事验证解析结果是否符合预期: OMPOSE AI 一款免费的 Chrome 插件,可加快您的写作速度,让您可以在任何地方使用自动完成功能,并减少打字时间。

相关推荐
nbu04william10 分钟前
Deepseek-api省token的用法
python·大模型·token·deepseek
IvorySQL17 分钟前
从双解析器到循环工程:IvorySQL 五年技术演进路线的深度观察
大数据·数据库·人工智能·postgresql·开源
wefg126 分钟前
【MySQL】事务
数据库·mysql
测试老哥27 分钟前
Pytest自动化测试详解
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
黑白极客34 分钟前
mysql的高可用性
数据库·mysql
坚持学习前端日记35 分钟前
国产化适配全流程适配英伟达本地开发
人工智能·python
一十九的酒1 小时前
Oracle 12c 标准版无缝升级企业版实战记录
数据库·oracle·标准版切换到企业版
ZhengEnCi1 小时前
S02-SpringBoot实体类新增字段对已有数据的影响及自动DDL同步机制详解
数据库·spring boot
源图客1 小时前
云途物流API开发-鉴权认证(Java)
java·网络·python
妙码生花1 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(三十二):增加 admin_rule 模型及数据表迁移
数据库·go·ai编程