XPathはXML文書を検索するための言語で、Seleniumと組み合わせることでWebスクレイピングに大いに役立ちます。特にcontains()とnot contains()は、特定の文字列を含むか含まないかに基づいて要素を選択する際に有用です。
contains()とnot contains()の基本
XPathのcontains()関数は、指定した属性またはテキストが特定の文字列を含むかどうかを判断します。一方、not()関数はその逆の条件、つまり特定の文字列を含まない要素を選択します。
例えば、次のようなXPath式は、title属性が’公司债券’を含み、かつ’短期’と’非公开’を含まないすべてのa要素を選択します。
driver.find_elements_by_xpath("//a[contains(@title,'公司债券') and not(contains(@title,'短期')) and not(contains(@title,'非公开'))]")
このように、contains()とnot contains()を組み合わせることで、より複雑な条件に基づいて要素を選択することが可能になります。
注意点
XPathのクエリは大文字と小文字を区別するため、検索する文字列の大文字と小文字を正確に指定する必要があります。また、XPath式の中に余分な括弧があると、XPath式が無効になる可能性があるため注意が必要です。
以上、PythonとSeleniumを使用したXPathのcontains()とnot contains()の基本的な使い方について解説しました。これらの関数を活用することで、Webスクレイピングの幅が広がります。