【问题标题】:JSOUP: How to get Href?JSOUP:如何获得 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。

【问题讨论】:

    标签: java android html parsing jsoup


    【解决方案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();
    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 2021-07-18
    • 2016-06-18
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多