これは HTML 構造です。
Element link = doc.select("div.subtabs p").first();
それはうまくいかないようです。どうすればそれを選択できますp
か?
class="subtabs" を持つ DIV は、実際にはp
要素の親ではなく、 の兄弟ですp
。を取得するp
には、最初に id="content" を持つ親 DIV への参照を取得する必要があります。
Element link = doc.select("div#content > p").first();
さらに、>
div#content の子を選択していることを示す記号が必要です。
親 > 子: 親から直接派生する子要素。たとえば、div.content > p は p 要素を検索します。and body > * body タグの直接の子を検索します
将来、JSOUP CSS セレクターに行き詰まった場合は、JSOUP セレクター構文クックブックを確認してください。いくつかの良い例と説明があります。
div#content p
. の子ではありません.subtabs
。
Chrome SelectorGadgetは、jSoup の CSS セレクターをポイント アンド クリックで作成するのに非常に役立ちます。特定の分野をターゲットにしようとすると、開発時間を何時間も節約できました。
Element link = doc.select("div.subtabs + p")
兄弟の直前にある要素を見つける
これを試して:
Element link = doc.select("div.subtabs > p").first();