2

如果我尝试从该域中检索 URL 的 Document.baseUri() -

http://www.deliciousmagazine.co.uk/articles/mid-week-meals

它返回http://www.deliciousmagazine.co.uk

对于其他 URL,Document.baseUri() 返回整个 URL。

例如

https://stackoverflow.com/about

将返回

https://stackoverflow.com/about

我注意到的唯一一件事是 HTML 响应返回带有以下信息的标记。

<base href="http://www.deliciousmagazine.co.uk/" />

这是我能想到的唯一导致此问题的原因。即使这个元素存在,如果我想要整个 URL 怎么办?我可以在 Document 上调用什么方法来检索它?

示例代码

Document doc = null;
try {
   doc = Jsoup.connect(url).userAgent("Mozilla").get();
} catch (IOException e) {
        e.printStackTrace();
}
System.out.println(doc.baseUri());
4

2 回答 2

0

基本 URI 的要点是将源 ( <a href="/foo">) 中的相对 URL 解析为绝对 URL。文档可以使用元标记作为基本 URI;如果未设置,则默认为获取的位置。

您需要获取源 URL 的用例是什么?难道你不知道它是什么(因为你是怎么得到它的)?

于 2013-03-14T23:42:23.513 回答
0

Response 对象有一个 url() 方法,它应该给你最终的 url。所以你可以这样做

String url = "http://t.co/i5dE1K4vSs";
Response response = Jsoup.connect(url).followRedirects(true).execute();
System.out.println(response.url());
于 2015-09-03T11:34:12.847 回答