parse(St">
gpt4 book ai didi

java - Jsoup.parse() 与 Jsoup.parse() - 或者 URL 检测在 Jsoup 中是如何工作的?

转载 作者:搜寻专家 更新时间:2023-11-01 02:53:12 29 4
gpt4 key购买 nike

Jsoup 有 2 个 html parse() 方法:

  1. > parse(String html) - "由于没有指定基本 URI,绝对 URL检测依赖于包含标记的 HTML。”
  2. > parse(String html, String baseUri) - "HTML 所在的 URL被检索自。用于将相对 URL 解析为绝对 URL,发生在 HTML 声明标签之前。”

我很难理解两者之间的区别的含义:

  1. 在第二个 parse()版本,什么是“将相对 URL 解析为绝对 URL,发生之前 HTML 声明 <base href>标签”是什么意思?如果一个 <base href>标记从不出现在页面中?
  2. 绝对 URL 检测的目的是什么?为什么 Jsoup 需要查找绝对 URL?
  3. 最后但也是最重要的:是 baseUri HTML 页面的完整 URL(如原始文档中的措辞)还是它的基本 URLHTML 页面?

最佳答案

它用于其他用途 Element#absUrl() 这样您就可以检索 <a href> 的(预期的)绝对 URL , <img src> , <link href> , <script src>等。例如

for (Element link : document.select("a")) {
System.out.println(link.absUrl("href"));
}

如果您还想下载和/或解析链接的资源,这将非常有用。


In the 2nd parse() version, what does "resolve relative URLs to absolute URLs, that occur before the HTML declares a <base href> tag" mean? What if a <base href> tag never occurs in the page?

一些(糟糕的)网站可能声明了一个 <link><script><base> 之前使用相对 URL 标签。或者如果没有办法 <base>标签,然后就是给定的 baseUri将用于解析整个文档的相对 URL。


What is the purpose of absolute URL detection? Why does Jsoup need to find the absolute URL?

为了在 Element#absUrl() 上返回正确的 URL .这纯粹是为了最终用户的方便。 Jsoup 不需要它来成功地自行解析 HTML。


Lastly, but most importantly: Is baseUri the full URL of HTML page (as phrased in original documentation) or is it the base URL of the HTML page?

前者。如果是后者,那么文档就会撒谎。 baseUri不得与 <base href> 混淆.

关于java - Jsoup.parse() 与 Jsoup.parse() - 或者 URL 检测在 Jsoup 中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142187/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com