jsoup如何读取html
Jsoup.parse() 默认按HTML5模式解析自动补全结构片段内容需通过doc.body().children()遍历传入字符串需注意编码匹配空值会抛异常远程加载需设置User-Agent、超时等参数读取文件要注意路径基准和真实编码解析后应验证outerHtml长度、title及body存在性。Jsoup.parse() 怎么解析 HTML 字符串直接用 Jsoup.parse() 就能从字符串生成 Document但必须注意它默认按「HTML5 模式」解析会自动补全缺失的 html、body 等结构。如果你传入的是纯片段比如一段 pHello/pdivWorld/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 BOMparse() 可能解析出奇怪的零宽字符可用 Files.readString(path, StandardCharsets.UTF_8).strip() 预处理Document 对象拿到后怎么确认 HTML 真被读进来了别急着 select()先做三件事验证解析结果是否符合预期 OMPOSE AI 一款免费的 Chrome 插件可加快您的写作速度让您可以在任何地方使用自动完成功能并减少打字时间。