このような多くのエントリを含むドキュメントを解析しています(JSoupを使用)
<span class="chart_position position-up position-greatest-gains">1</span>
<h1>Beauty And A Beat</h1>
<p class="chart_info">
<a href="/artist/305459/justin-bieber">Justin Bieber Featuring Nicki Minaj</a> <br>
Beauty and a Beat </p>
次のように、曲のタイトルとアーティストの2つの別々のリストを抽出できます。
Elements song = doc.select("div.chart_listing h1");
System.out.println("song: " + song);
Elements li = doc.select("p.chart_info a");
System.out.println("artists: " + li.text());
ただし、出力は次のようになります。
<h1>The Lucky Ones</h1>
<h1>Scream & Shout</h1>
<h1>Clarity</h1>
<h1>We Are Young</h1>
<h1>Va Va Voom</h1>
<h1>Catch My Breath</h1>
<h1>I Found You</h1>
<h1>Sorry</h1>
<h1>Leaving</h1>
artists: Justin Bieber Featuring Nicki Minaj Kerli will.i.am & Britney Spears Nicki Minaj Kelly Clarkson The Wanted Ciara Pet Shop Boys
そして、私はそれを次のように見せたいと思います:
1 - Song - Artist
2 - Song - Artist
etc
私は関連する投稿を見てこれを試しましたが、私はそれを完全に理解していません:
Elements parents = doc.select("div.chart_listing h1");
for (Element parent : parents)
{
Elements categories = parent.select("p.chart_info a");
System.out.print("song: " + parent + " - ");
System.out.print("artist: " + categories.text() + "\n");
}
これは現在、次のような空白の曲を出力します。
song: <h1>Beauty And A Beat</h1> - artist:
song: <h1>The Lucky Ones</h1> - artist:
song: <h1>Scream & Shout</h1> - artist:
2つの主な質問は未解決のままです。
- 曲に属するアーティストを印刷するにはどうすればよいですか?なぜブランなの?
- 番号を追加するにはどうすればよいですか(これは二次的なものですが、いいでしょう)
本当にありがとう!
- -編集
より大きな親を使用して最初の問題を解決しました。
Elements parents = doc.select("article.song_review");
for (Element parent : parents)
{
Elements titles = parent.select("h1");
Elements categories = parent.select("p.chart_info a");
System.out.print("song: " + titles + " - ");
System.out.print("artist: " + categories.text() + "\n");
}
これで、出力は次のようになります。
song: <h1>Beauty And A Beat</h1> - artist: Justin Bieber Featuring Nicki Minaj
song: <h1>The Lucky Ones</h1> - artist: Kerli
song: <h1>Scream & Shout</h1> - artist: will.i.am & Britney Spears
%ampをクリアする方法に関するアイデア。番号を追加しますか?