Reg*_*kie 5 java html-parsing jsoup
Jsoup 有 2 个html parse() 方法:
我很难理解两者之间差异的含义:
parse()将相对 URL 解析为绝对 URL
”是什么意思?如果
页面中从未出现过标签怎么办?<base href><base href>baseUriHTML 页面的完整 URL(如原始文档中的措辞)还是HTML 页面的基本URL?它用于除其他外,以便您可以检索、、、等Element#absUrl()的(预期)绝对 URL。例如<a href><img src><link href><script src>
for (Element link : document.select("a")) {
System.out.println(link.absUrl("href"));
}
Run Code Online (Sandbox Code Playgroud)
如果您还想下载和/或解析链接的资源,这非常有用。
在第二个 parse() 版本中,“将 HTML 声明标签之前发生的相对 URL 解析为绝对 URL
<base href>”是什么意思?如果<base href>页面中从未出现过标签怎么办?
一些(较差的)网站可能在标签前声明了<link>或 以及<script>相对 URL 。或者,如果没有标记,则仅使用给定的标记来解析整个文档的相对 URL。<base><base>baseUri
绝对URL检测的目的是什么?为什么Jsoup需要查找绝对URL?
为了在 上返回正确的 URL Element#absUrl()。这纯粹是为了最终用户的方便。Jsoup 不需要它来成功地自行解析 HTML。
最后但最重要的是:baseUri 是 HTML 页面的完整 URL(如原始文档中的措辞)还是 HTML 页面的基本 URL?
前者。如果是后者,那么文档就会撒谎。切勿baseUri与 混淆<base href>。
| 归档时间: |
|
| 查看次数: |
3312 次 |
| 最近记录: |