0

我想通过链接名称获取 url。

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

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

所以我想要的是第一个网址,因为链接名称是下载。

我的问题是如何通过链接名称获取 url。

我知道一个完整的解决方案是获取所有元素并使用 if(a.text().contains(download) )。但我想有一个简单的方法。

谢谢

4

2 回答 2

2

使用伪选择器。例如,

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

根据您要完成的具体任务,您可能希望使用 containsOwn 来避免在子元素中进行搜索,或者如果您想使用正则表达式来获取仅包含文本“下载”的元素,请使用 matches/matchesOwn。那个正则表达式是

^download$

请参阅选择器文档

于 2012-06-08T19:53:27.523 回答
2

好吧,最好的方法是获取所有包含 href 的 < a>,并获取 href 属性。像这样:

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

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

String href;

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

现在..您想要获得哪些href完全取决于您。但我认为你必须使用

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

哦,也许您可​​以尝试使用 doc 变量中的 getter。

.getElementsByAttributeValue("a[href]", "download");

于 2012-06-08T14:44:48.290 回答