10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XPath基礎編(3) ー XPathによく使う関数

Last updated at Posted at 2020-05-21

前回は最も使われるXPath書き方を紹介しまして、今回では、より正しくデータを指定するため、XPathによく使われる関数をご紹介します。

1. contains():特定の文字列が含まれる要素を指定する

[contains()] は通常、属性値やテキストに含まれる文字列をあいまいに検索する際に使用されます。

  • contains(@class,"XXX"):属性値に特定の文字列が含まれている要素を指定する
2.jpg

例えば、このHTMLからclass属性に『Red』を含む要素をすべて取得したい場合、次のように記述します。

//span[contains(@class,“Red”)]

つまり、このXPathは、classにRedを含むspan要素をすべて取得するという意味になります。

3.jpg
  • contains(text(),"XXX") :テキストに特定の文字列が含まれる要素を指定する
Harry Potter(html).jpg

例えば、このHTMLから 『Rowling』という文字を含んでいる要素を指定したい場合は、次のように書きます。

//span[contains(text(),"Rowling")]

ヒント!
ページ送りボタンを指定する場合はよく 『contains(text(),"次へ")』 を使います。
ページ送りボタンを指定するXPathの書き方についてはこちら➡ ページ送りボタンを指定するXPathの書き方

2. position():特定位置の要素を指定する

前回の記事では、[](スクウェアブラケット) で数値を囲むと、順番の要素を取得できることを紹介しました。positionでもN番目の要素を指定することもできます。

  • position()=
4 (1).jpg

例えば、上記のHTMLで『商品3』は4番目のth要素であるため、次のように書きます。

//tbody/th[4]

position()=を使うと、次のように書きます。

//tbody/th[position()=4]

  • position() >
4 (1).jpg

『広告』以外の要素を取得する場合、『広告』は1番目のth要素であるため、次のように書きます。

//tbody/th[position()>1]
5 (1).jpg

3. and/not/or:複数の条件が含まれている要素を指定する

複数の条件が同時に含まれている要素を指定したい場合は and/not/or 関数を使います。

  • and ー 複数の条件に一致する要素を指定する
7.jpg

このHTMLから、『S_20』と『pdf』を含むhrefを取得したい場合は、次のように書きます。

//a[contains(@href,“S_20”) and contains(@href,“pdf”)]

  • not ー 特定条件を含まない要素を指定する
8.jpg

このHTMLから https://helpcenter.octoparse.jp/hc/ja/xpath/S_10.html 以外の『href』を取得したい場合は、次のように書きます。

//a[not(contains(@href, "S_10"))]

  • or ー いずれかの条件に一致する要素を指定する
9.jpg

このHTMLから、MかLを含むhrefを取得したい場合は、次のように書きます。

//a[contains(@href,”M_”) or contains(@href,”L_”)]

また、『M』か『L』以外の『href』を取得したい場合は、notとorを組み合わせると、次のように書きます。

//a[not(contains(@href,”M_”) or contains(@href,”L_”))]

以上はXPathによく使われる関数です。もしXPathの構文・関数をより多く了解するには、Xpath cheatsheetをご覧ください。

元記事:【図解】XPathとは?基本概念から書き方までわかりやすく解説!

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?