2011-03-26 39 views
0

如何使用jsoup從網頁上的所有段落中提取完整的URL?我只能提取相關的URL。如何使用jsoup從網頁中的所有段落中提取完整的URL

預計: http://fr.wikipedia.org/wiki/Husni_al-Zaim

實際:/Husni_al-Zaim

我的代碼:

Elements links = doc.select("p"); 
    Elements linkss = links.select("a"); 

    for (Element link : linkss) { 
     if (link.text().matches("^[A-Z].+") == true) { 
      list.add(new NamedLink(link.attr("href"), link.text())); 
     } 
    } 

回答

1

使用.absUrl("href"),而不是.attr("href")。這僅適用於從網頁獲取文檔或從磁盤解析文件完整(因此不會像在示例中那樣將部分從HTML轉換爲文本並返回)。

Document document = Jsoup.connect("http://stackoverflow.com").get(); 
Elements paragraphLinks = document.select("p a"); 
for (Element paragraphLink : paragraphLinks) { 
    String absUrl = paragraphLink.absUrl("href"); 
    // ... 
} 
+0

我想以大寫字母開頭,包括重音字母大寫 – user651584 2011-03-26 14:05:05

+1

這是一個不同的問題(我不明白它)。 – BalusC 2011-03-26 14:41:22

+0

@BalusC只要您將基本URI傳遞給解析方法,就可以在解析頁面時獲得完整的URL。 parse(String html,String baseUri) – 2016-08-03 03:18:35