非常に変化するHTML構造を使用してサイトをスクラップしようとしています。関心のある情報はカプセル化されていません。唯一のマーカーは、ターゲットIDがTARGETIDのスパンです。Xpath:存在する場合、ノードの隣にノードを見つける
構造は次のとおりです。
<h2>
<span class="TARGETID">TARGETID</span>
</h2>
<p> <!-- this is not always present, could be more p tags --> </p>
<ul> <!-- also not always present, if there, this is what we want --> </ul>
<h2>
<span class="SOMEIRRELEVANTID">IRRELEVANT</span>
</h2>
私のアプローチだった:順不同リストはTARGETID後に存在するが、いない場合、それは次の順序なしリストを取り、それは(見つけたときに成功し
//h2/span[contains(text(), 'TARGETID')]/../following-sibling::ul[1][count(li) > 1][li]//a/text()
これはクエリに基づいて意味があります)。
質問:2つのH2のノードにクエリを限定するには、どのようにターゲットIDのスパンを含むものから始まり、異なるIDのスパンを持つH2によって制限されますか?
ご意見をいただければ幸いです。
はい、正確です。例の行6の次の 'h2'がクエリのリミッタとして機能します。これらの 'h2'の中の' ul'が存在しない場合、 'ul'の抽出をさらに避けるべきです。 – leandermelms