How to resolve relative url with Jsoup?

前端 未结 2 1384
野性不改
野性不改 2020-12-19 02:18

Hi I have a problem with Jsoup.

I scrape a page and get a lot of urls. Some of those are relative urls like: \"../index.php\", \"../admin\"

相关标签:
2条回答
  • 2020-12-19 02:59

    also a good option is to use the abs:href or abs:src attributes:

    String relHref = link.attr("href"); // == "/"
    String absHref = link.attr("abs:href"); // "http://jsoup.org/"
    

    this is also described there: http://jsoup.org/cookbook/extracting-data/working-with-urls

    0 讨论(0)
  • 2020-12-19 03:03

    If element contains a relative link you get the absolute link like this: element.absUrl("href").

    But you have to set the base URI for your relative links before (call eg. setBaseUri("http://www.myexample.com") on your Document or Element).

    Make shure your base Uri is long enough!

    Good:

    element.setBaseUri("http://www.example.com/abc/");
    element.attr("href", "../b/here");
    

    returns: http://www.example.com/b/here

    Bad:

    element.setBaseUri("http://www.example.com/abc/");
    element.attr("href", "../../b/here");
    

    returns: http://www.example.com/../b/here

    --> your relative link is too long for you base uri!

    0 讨论(0)
提交回复
热议问题