JSOUP:如何获得 Href?

Posted

技术标签:

【中文标题】JSOUP:如何获得 Href?【英文标题】:JSOUP: How to get Href? 【发布时间】:2015-08-05 03:41:35 【问题描述】:

我有这个 html 代码:

 <td class="topic starter"><a href="http://www.test.com">Title</a></td>

我想提取“标题”和 URL,所以我这样做了:

 Elements titleUrl = doc.getElementsByAttributeValue("class", "topic starter");
 String title = titleUrl.text();

这适用于标题,但对于 URL,我尝试了以下操作:

 String url = titleUrl.html();
 String url = titleUrl.attr("a [href]");
 String url = titleUrl.attr("a[href]");
 String url = titleUrl.attr("href");
 String url = titleUrl.attr("a");

但是没有人工作,我无法获取 URL。

【问题讨论】:

【参考方案1】:

试试这个:

Element link = doc.select("td.topic.starter > a").first();
String url = link.attr("href");

您首先选择a 元素,然后提取其属性href

【讨论】:

看看我编辑的帖子,这应该可以。不,您不能从 td 元素中提取 url,因为它是不同元素的属性。 @helloimyourmind 好吧,这与我的代码基本相同,在两个选择中而不是一个。您也不应该要求toString(),因为attr() 已经返回一个字符串。 感谢您的帮助。您的解决方案是否提高了双选的性能? 我不知道它是否提高了性能,因为我不知道它是如何在内部实现的——它当然不应该让它变慢。不过,它提高了可读性。 你需要添加 .first(); doc.select("td.topic.starter > a").first();

以上是关于JSOUP:如何获得 Href?的主要内容,如果未能解决你的问题,请参考以下文章

请问用Jsoup如何解析一个已知name的元素的value值?

如何防止 Jsoup 转义 html?

使用 Jsoup 获取网页元素

Jsoup css 选择器代码(包括 xpath 代码)

获取个人借阅信息---图书馆client

能用java相关技术解析Html页面,批量获取页面内容对应的xpath吗