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

相关推荐
石榴树下的七彩鱼13 分钟前
图片去水印 API 详解:从单图到批量自动化去水印(附 Python/JS/PHP 完整教程)
python·自动化·图片处理·图片去水印·石榴智能·api教程
Dicky-_-zhang1 小时前
系统容量规划与压测实战:从1万到100万QPS的科学扩容
java·jvm
Li emily6 小时前
解决了加密货币api多币种订阅时的数据乱序问题
人工智能·python·api·fastapi
Dicky-_-zhang6 小时前
消息队列Kafka/RocketMQ选型与高可用架构:从单体到100万TPS的演进
java·jvm
2301_781571427 小时前
Golang格式化输出占位符都有什么_Golang fmt占位符教程【通俗】
jvm·数据库·python
养肥胖虎7 小时前
RAG学习笔记(3):区分数据库检索与RAG的使用场景
数据库·ai·rag
asdzx677 小时前
使用 Python 为 PDF 添加页码 (详细教程)
python·pdf·页码
AI技术控7 小时前
《Transformers are Inherently Succinct》论文解读:从“能表达什么”到“多紧凑地表达”
人工智能·python·深度学习·机器学习·自然语言处理
_ku_ku_7 小时前
数据库系统原理 · 数据库应用开发 · 自学总结
数据库
No8g攻城狮8 小时前
【人大金仓】wsl2+ubuntu22.04安装人大金仓数据库V9
java·数据库·spring boot·非关系型数据库