如何使用Jsoup解析相对URL?

Tro*_*sta 8 java url jsoup

嗨我有Jsoup的问题.

我刮了一页,得到了很多网址.他们有些是像相对URL: ,"../index.php",."../admin""../details.php"

attr("abs:href")用来获取绝对网址,但这个链接呈现为www.domain.com/../admin.php

我想知道这是不是一个bug.

有没有办法用jsoup获得真正的绝对路径?我该怎么解决这个问题?

我也尝试过absurl("href"),但没有工作.

rbs*_*rbs 14

也是一个很好的选择是使用abs:href或abs:src属性:

String relHref = link.attr("href"); // == "/"
String absHref = link.attr("abs:href"); // "http://jsoup.org/"
Run Code Online (Sandbox Code Playgroud)

这也在那里描述:http: //jsoup.org/cookbook/extracting-data/working-with-urls


oll*_*llo 9

如果element包含相对链接,则会获得如下所示的绝对链接:element.absUrl("href").

但是你必须在之前为你的相对链接设置基本URI(例如setBaseUri("http://www.myexample.com")在你的Document或你的上面调用Element).

让你的基地Uri足够长!

好:

element.setBaseUri("http://www.example.com/abc/");
element.attr("href", "../b/here");
Run Code Online (Sandbox Code Playgroud)

收益: http://www.example.com/b/here

坏:

element.setBaseUri("http://www.example.com/abc/");
element.attr("href", "../../b/here");
Run Code Online (Sandbox Code Playgroud)

收益: http://www.example.com/../b/here

- >你的相对链接太长了你的基础uri!