JsoupcssセレクターeqはJqueryとは異なります



Jsoup Css Selector Eq Is Different From Jquery

このページを例として取り上げます。
対応する要素を取得するためのJqueryセレクターは次のとおりです。



それはJqueryのセレクターから見ることができます:

:eq(index)セレクターは、指定されたインデックス値を持つ要素を選択します。
インデックス値は0から始まり、最初のすべての要素のインデックス値は0(1ではない)です。



$( 'p:eq(1)')は2番目のp要素を返します

jsoupを使用してフェッチするように切り替えます。

Document doc = JsoupUtil.getHtml('http://economy.nmgnews.com.cn/system/2020/03/20/012877350.shtml') System.out.println('nth-child:'+doc.select('div#div3 a:nth-child(1)')) System.out.println('nth-child:'+doc.select('div#div3 span:nth-child(2)')) System.out.println('nth-child:'+doc.select('div#div3 a:nth-child(3)')) System.out.println('nth-child:'+doc.select('div#div3 span:nth-child(4)')) System.out.println('---------------------------------------------') System.out.println('eq:'+doc.select('div#div3 a:eq(0)')) System.out.println('eq:'+doc.select('div#div3 span.black12:eq(1)')) System.out.println('eq:'+doc.select('div#div3 a:eq(2)')) System.out.println('eq:'+doc.select('div#div3 span.black12:eq(3)'))



また、Jsoupのeqセレクターは、特定の位置にある要素を返すようなもので、添え字は0から始まります。
公式ウェブサイトの元の単語(あまり理解されていません):eq(n):nに等しい同じインデックス値を持つ要素を見つけます。例:form input:eq(1)は、入力タグForm要素が含まれていることを意味します。
jsoup公式サイト: https://www.open-open.com/jsoup/selector-syntax.htm



:nth-​​child(index)はeqと同じ感覚機能を持ち、添え字は1から始まります。


デバッグ情報: