Jsoup: “仅选择 text() 等于的链接”

发布于 2024-12-03 11:27:31 字数 403 浏览 0 评论 0原文

使用等于某些预定义字符串的 text() 进行 cul 链接的一种方法很简单:

Elements links = document.getElementsByTag("a");               
for (Element link : links) {
    if (link.text().equals("So & so") || link.text().equals("such & such") {
        // add link.attr("href") to our container;
    }
}                   

但随着 text() 条件数量的增加,这种方法看起来效率越来越低。

在 Jsoup 中是否有更好的方法来实现这一点?

One way to cul links with text() that equals some predefined strings is straightforward:

Elements links = document.getElementsByTag("a");               
for (Element link : links) {
    if (link.text().equals("So & so") || link.text().equals("such & such") {
        // add link.attr("href") to our container;
    }
}                   

But as the number of text() conditions grows, this approach looks less and less efficient.

Is there a better way to accomplish this in Jsoup?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无畏 2024-12-10 11:27:31

这与 Jsoup 没有任何具体关系,但为什么不使用像 HashSet 这样的 Set 来保存有效的字符串呢?然后,如果该集合被称为“validTextSet”,您可以非常简单有效地测试文本是否在集合中

     if (validTextSet.contains(link.text())) {
        // add link.attr("href") to our container;
     }

This has nothing specific to do with Jsoup, but why not use a Set such as a HashSet to hold your valid Strings? Then if the set were called "validTextSet", you could quite simply and efficiently test if the text is in the set with

     if (validTextSet.contains(link.text())) {
        // add link.attr("href") to our container;
     }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文