XPath を使用した CSS クラスによる要素の検索
Web スクレイピングでは、CSS クラスに基づいて HTML 要素を見つけることが必要になることがよくあります。 XML および HTML ドキュメントをナビゲートするための強力なツールである XPath は、これを実現する方法を提供します。
「Test」という名前のクラスを持つ div 要素を含む HTML ページを考えてみましょう。次の XPath クエリを使用してこの要素を検索できます:
//*[contains(@class, 'Test')]
このクエリは、ドキュメント ツリー内のどこに表示されるかに関係なく、「Test」クラスを含むすべての要素を選択します。
パフォーマンスを最適化するために、検索を div などの特定の要素タイプに絞り込むことができます。たとえば、次のクエリは、検索を「Test」クラスを含む div に制限します:
//div[contains(@class, 'Test')]
ただし、「Testvalue」や「newTest」のようなクラスを持つ要素がある場合、上記のクエリは一致します。彼らも同様です。より正確な一致を保証するには、@Tomalak が提案しているように、「Test」クラスの前後にスペースを含む連結文字列を使用できます。
//div[contains(concat(' ', @class, ' '), ' Test ')]
このクエリは、単語を含む div のみに一致します。別のクラス値としての「テスト」。
空白の問題を排除するには、次のように、normalize-space 関数を使用してスペースを正規化することもできます。 @Terry:
//div[contains(concat(' ', normalize-space(@class), ' '), ' Test ')]
最後に、ドキュメント内のすべての要素を検索する場合を除き、これらのクエリ内のアスタリスク (*) を、一致させる実際の要素名に置き換えることが重要です。これにより、クエリの効率が向上します。
以上がXPath を使用して CSS クラスによって HTML 要素を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。