Java JSOUP以获取未排序的列表

Java JSOUP以获取未排序的列表,java,jsoup,Java,Jsoup,我正在重新发布此消息。 我正试图提取一个无序的列表。在上一个问题中,我认为fomrat不正确。 我试图从中提取数据的网站格式正确 <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 t

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

<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>

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

如果您能更好地格式化和指定您的需求,我的答案可能会更准确,这就是您想要的吗

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());
        }
    }
publicstaticvoidmain(字符串[]args)引发IOException
{
字符串html=“
  • (1999)
  • (1999)
  • (1990)
    • ”; Document doc=Jsoup.parse(html); 元素链接=文件选择(“ul li i a”); 用于(元素:链接){ System.out.format(“%s%s%s\n”、element.attr(“title”)、element.attr(“href”)、element.text(); } }
如果没有,请在问题中添加示例输出部分

更新:

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

doc.选择(“a”)
也会得到相同的结果。但具体点更好,因为你正在解析来自某个网站的数据,因为链接可能位于不同的地方,具有不同的id/类别或其他什么,你正在寻找这些特定的链接


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

谢谢,这就是我要找的。你能解释一下JSOUP在这种情况下是如何工作的吗?我们给了“ul li i a”,所以它将grep所有带有标记ul(或)li(或)i(或)a的元素,当我们给element.attr(“title”)、element.attr(“href”)、element.text()时,如果这些元素有效并打印,它将从该greed列表中获取?请让我知道,我已经更新了答案,如果你喜欢,请考虑接受它。
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());
        }
    }