Jsoup Document.baseUri()问题

时间:2013-03-09 00:56:02

标签: jsoup

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

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

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

对于其他网址,Document.baseUri()会返回整个网址。

E.g。

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());

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

String url = "http://t.co/i5dE1K4vSs";
Response response = Jsoup.connect(url).followRedirects(true).execute();
System.out.println(response.url());