5

このメッセージを再投稿します。順序付けられていないリストを抽出しようとしています。前の質問では、fomratが正しくありません。データを抽出しようとしているこのWebサイトは、正しくフォーマットされています。

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

印刷したい:

title1

Google COM

yahoo.com

=以前は最高のメールでした最高の検索メールはBestphoneになります

同様にすべてのHref。

JSOUPのドキュメントを見ました。

関連する質問: jsoupは、順序付けされていないリストのデータを取得しますが、 形式の問題があります。

提案どおりに試しましたが、機能しません

私は試した:

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

問題は、これがいくつかの情報を含む大きなページであるということです。順序付けされていないリストがたくさんあるという点で。

4

1 に答える 1

9

要件をより適切にフォーマットして指定すると、私の答えはより正確になるかもしれませんが、これはあなたが探していたものですか?

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());
        }
    }

If not add a sample output section in your question.

Update :

How it works. The ul li i a is a css selector. Which would mean take every a element that is located inside i that is wrapped in li tags which is wrapped in ul tags. (Horrible explanation)

You would get the same result from doc.select("a") as well. But being specific is better since you're parsing this data from some website because links can be in different places with different id/class or whatever and you are looking for these specific ones.

Yes if the selected elemets do have title, hyperlink and text value it will output that data.

于 2012-08-18T20:39:00.923 に答える