嗨我有Jsoup的问题。
我刮了一页并获得了很多网址。其中一些是相对网址,例如:"../index.php"
,"../admin"
,"../details.php"
。
我使用attr("abs:href")
获取绝对网址,但此链接的呈现方式与www.domain.com/../admin.php
我想知道这是不是一个错误。
有没有办法通过jsoup获得真正的绝对路径?我怎么解决这个问题?
我也试过absurl("href")
,但没有工作。
答案 0 :(得分:13)
另一个好的选择是使用abs:href或abs:src属性:
String relHref = link.attr("href"); // == "/"
String absHref = link.attr("abs:href"); // "http://jsoup.org/"
这里也有描述: http://jsoup.org/cookbook/extracting-data/working-with-urls
答案 1 :(得分: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");
返回: http://www.example.com/b/here
<强>为:强>
element.setBaseUri("http://www.example.com/abc/");
element.attr("href", "../../b/here");
返回: http://www.example.com/../b/here
- &GT;你的相对链接太长了你的基础uri!