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

相关推荐
smj2302_796826523 小时前
解决leetcode第3901题好子序列查询
python·算法·leetcode
亚空间仓鼠3 小时前
关系型数据库MySQL(三):主从复制
数据库·mysql
a9511416423 小时前
怎么防范通过phpMyAdmin上传WebShell_禁止into outfile权限
jvm·数据库·python
2401_885885043 小时前
群发彩信接口怎么开发?企业级彩信发送说明
前端·python
InfinteJustice3 小时前
如何统计SQL分组汇总数据_详解GROUP BY与HAVING用法
jvm·数据库·python
Freak嵌入式3 小时前
aiohttps异步HTTPS库:uPyPI+MicroPython一键安装
人工智能·python·网络协议·http·https·micropython
PILIPALAPENG3 小时前
第2周 Day 5:前端转型AI开发,朋友问我,你到底在折腾啥?
前端·人工智能·python
zhangchaoxies3 小时前
如何使用 AWS Lambda 和 Python 获取 EMR 集群的标签列表
jvm·数据库·python
吕源林3 小时前
如何处理SQL插入后的数据一致性校验_使用Checksum比对
jvm·数据库·python