当前位置: 首页 > 面试题库 >

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

皇甫展
2023-03-14
问题内容

Jsoup有2个 html parse()方法:

  1. parse(String html) -“由于未指定基本URI,因此绝对URL检测依赖于包含标签的HTML。”
  2. “ parse(String html,String baseUri) -”从中检索HTML的URL。用于将相对URL解析为绝对URL,该绝对URL在HTML声明标签之前发生。

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

  1. 在第二parse()版中,“将相对URL解析为在HTML声明标签 之前 发生的绝对URL <base href>”是什么意思?如果 页面中 永远不会 出现<base href>标签怎么办? __
  2. 绝对URL检测的目的是什么?为什么Jsoup需要找到绝对URL?
  3. 最后,但最重要的是: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"));
}

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

在第二个parse()版本中,“将相对URL解析为绝对URL(在HTML声明<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>



 类似资料:
  • 问题内容: 我有一个输入String说。许多浏览器/ IDE /应用程序都会检测到字符串的url部分,并自动添加锚点。这样就变成了。 我需要使用Java进行相同的操作。 问题答案: 为此使用java.net.URL! 嘿,为什么不对这个“ java.net.URL”使用Java的核心类,而让它验证URL。 尽管以下代码违反了“仅在特殊情况下使用异常”这一黄金原则,但对Java平台上已经成熟的某些东

  • 我们将创建一个简单的来显示一个电影的信息。 这个应用程序将只包含两个组件:MovieComponent显示有关电影的信息和MainComponent,它使用按钮来保存对电影的引用以执行一些动作。 我们的AppComponent组件将有三个属性:应用程序的slogan,电影的title(标题)和(主角)。 最后两个属性将被传递到模板中引用的MovieComponent元素。 在上面的代码片段中,我们

  • 问题内容: 我正在尝试获取手机号码文本框的值,以使用angular.js验证其输入值。我是使用angular.js的新手,但不确定如何实现这些事件,并在我的html代码上放了一些JavaScript来验证或操作表单输入。 这是我的HTML: 而我的控制器: 我不确定如何在angular.js中使用keydown事件,我也搜索了如何正确使用它。我可以验证我对指令的输入吗?还是我应该像使用控制器那样使

  • 本文向大家介绍如何在Python中检测元音与辅音?,包括了如何在Python中检测元音与辅音?的使用技巧和注意事项,需要的朋友参考一下 首先,您应该检查字符是否为字母。然后,您可以创建一个元音列表,并使用该列表检查字符是否为元音。如果没有,那一定是辅音。例如, 这将给出输出:

  • 问题内容: 我尝试了一些方法来检测代码中的EOF,但仍然无法正常工作。我尝试使用BufferedReader,Scanner和char u001a标记EOF,但对我的代码仍然没有任何意义。这是我的最后一个代码: 该程序应该在到达EOF时停止运行,但是我不知道为什么,由于某些原因,它会继续运行并导致运行时错误。请帮忙。顺便说一句,我是新来的,如果对我的问题还不清楚,很抱歉,谢谢您:) 问题答案: 由

  • 如何在AngularJS中检测onKeyUp? 我正在寻找一个'ngOnkeyup'指令,类似于ngChange,但我找不到任何合适的。 如果没有这样的指令,是否有一种干净的方法可以从浏览器本机onkeyup事件调用控制器?