2012-06-08 127 views
0

我想通過鏈接名稱獲取網址。Jsoup網址,通過鏈接名稱獲取網址

<a href="download.asp?softid=1&amp;downid=2&id=65367" target="_blank">download</a> 

<a href="www.baidu.com" target="_blank">ad</a> 

所以我想要的是鏈接名稱下載的第一個網址。

我的問題是如何通過鏈接名稱獲取網址。 (a.text()。contains(download))我知道一個完整的解決方案是獲取所有元素並使用if(a.text()。contains(download))。但我想有一個簡單的方法。

感謝

回答

2

那麼,最好的辦法是讓所有的<一> s,它包含的HREF,並獲得的HREFs屬性。就像這樣:

Document doc = Jsoup.connect("whatever url").get(); 

Elements a = doc.select("a[href]"); 

String href; 

for (Element elem : a) { 
    href = a.attr("href"); 
} 

現在..你想得到哪個hrefs是由你決定的。但我認爲你必須使用

.contains(""); 
.endsWith(""); 
.startsWith(""); 

哦,也許你可以嘗試使用doc變量中的getters。

.getElementsByAttributeValue(「a [href]」,「download」);

+0

thanks.problem resolved.it的編碼問題 – chandler

2

使用僞選擇器。例如,

Document doc = Jsoup.connect(url).get(); 
Elements a = doc.select("a[href]:contains(download)"); 

取決於正是你所要完成,您可能需要使用containsOwn避免子元素中進行搜索,或用火柴/ matchesOwn如果要使用正則表達式來獲得包含元素只有文字「下載」。該正則表達式將是

^download$ 

查看Selector documentation

+0

謝謝,我試過[href]:包含(下載)之前,最後我發現它是編碼問題。謝謝。 – chandler

+0

doc.select(「a [href]:contains(download)」)這不起作用 – vikramvi