2012-06-08 131 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