java - JSOUP 获取无序列表

标签 java jsoup

我重新发布这条消息。 我正在尝试提取无序列表。在上一个问题中,我的格式不正确。 我试图从中提取数据的网站格式正确。

<ul>
<li>
<i>
<a class="mw-redirect" title="title1" href="yahoo.com">used to be a best email</a>
</i>
(1999)
</li>
<li>
<i>
<a title="title2" href="google.com">Best search enginee We Will Go</a>
</i>
(1999)
</li>
<li>
<i>
<a title="title3" href="apple.com">Best Phone</a>
</i>
(1990)
</li>
</ul>

我要打印:

标题1

google.cn

雅虎网

= 曾经是最好的电子邮件 最好的搜索电子邮件将去 最好的手机

类似地所有 Hrefs。

我确实看到了 JSOUP 文档。

相关问题: jsoup to get the data in a unorderedlist 但这是有格式问题。

我按照提示试过了,但是还是不行

我试过:

Document doc = Jsoup.connect(url).get();             
Element link = doc.select("a").last();
String title1 = link.attr("title");

问题是这是一个包含一些信息的大页面。因为有很多无序列表..

最佳答案

如果您能更好地格式化和指定您的要求,也许我的回答会更准确,这是您要找的吗?

public static void main(String[] args) throws IOException
    {
        String html = "<ul><li><i><a class=\"mw-redirect\" title=\"title1\" href=\"yahoo.com\">used to be a best email</a></i>(1999)</li><li><i><a title=\"title2\" href=\"google.com\">Best search enginee We Will Go</a></i>(1999)</li><li><i><a title=\"title3\" href=\"apple.com\">Best Phone</a></i>(1990)</li></ul>";

        Document doc = Jsoup.parse(html);

        Elements links = doc.select("ul li i a");

        for (Element element : links) {
            System.out.format("%s %s %s\n", element.attr("title"), element.attr("href"), element.text());
        }
    }

如果没有在您的问题中添加示例输出部分。

更新:

它是如何工作的。 ul li i a 是一个 css 选择器。这意味着获取位于 i 中的每个 a 元素,这些元素被包裹在 li 标签中,标签被包裹在 ul 标签。 (可怕的解释)

您也会从 doc.select("a") 中得到相同的结果。但是具体一点更好,因为您正在从某个网站解析这些数据,因为链接可以位于不同的位置,具有不同的 id/class 或其他任何内容,而您正在寻找这些特定的链接。

是的,如果所选元素确实有标题、超链接和文本值,它将输出该数据。

关于java - JSOUP 获取无序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12021391/

相关文章:

java - 如何限制匿名子类的创建(Java)

java - 使用 jsoup 发布登录

java - JSOUP 仅删除关闭和/或打开 div

java - 使用 jsoup 读取 XML

java - java中的自定义分析器,使用edgeNGram标记过滤器

java - 在计算阶乘时,即使使用 long 和 double,我也会得到垃圾值

java - 用户输入,不允许相同的输入两次

服务中的 Android Jsoup - 获取 span 的文本

java - Jsoup,在执行表单POST之前获取值

java - 在 Model-View-Controller 中,为什么模型的改变不会触发 View 的改变?