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 插件,可加快您的写作速度,让您可以在任何地方使用自动完成功能,并减少打字时间。

相关推荐
YOU OU5 小时前
Redis基础常识与命令
数据库·redis·缓存
Scott9999HH5 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
AI云海6 小时前
python 列表、元组、集合和字典
开发语言·python
二十雨辰6 小时前
[爬虫]-Urllib
爬虫·python
Database_Cool_7 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森7 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_8 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
玉鸯8 小时前
Agent Hook:在概率推理之上,为 Agent 叠加确定性控制
python·langchain·agent
姜太小白8 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql