Jsoup獲取href

處理URLs

問題

你有一個包含相對URLs路徑的HTML文檔,需要將這些相對路徑轉換成絕對路徑的URLs。

方法

  1. 在你解析文檔時確保有指定base URI,然後
  2. 使用 abs: 屬性前綴來取得包含base URI的絕對路徑。代碼如下: 
Document doc = Jsoup.connect("http://www.open-open.com").get();  Element link = doc.select("a").first(); String relHref = link.attr("href"); // == "/" String absHref = link.attr("abs:href"); // "http://www.open-open.com/" 

說明

在HTML元素中,URLs經常寫成相對於文檔位置的相對路徑: <a href="/download">...</a>. 當你使用 Node.attr(String key) 方法來取得a元素的href屬性時,它將直接返回在HTML源碼中指定定的值。

假如你需要取得一個絕對路徑,需要在屬性名前加 abs: 前綴。這樣就可以返回包含根路徑的URL地址attr("abs:href")

因此,在解析HTML文檔時,定義base URI非常重要。

如果你不想使用abs: 前綴,還有一個方法能夠實現同樣的功能 Node.absUrl(String key)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章