XPath応用編 - 1.次へボタンを指定する
一週間前以上前にアップデートされました

ページ送りボタンの種類がいくつかありますが、今回はよく見かける3種類のページ送りボタンを指定する方法を紹介します。

1.「次へ」で表示するボタン

例:https://loco.yahoo.co.jp/search/?genrecd=0413001&sort=hybrid&paypay=1&b=1

上記はよく見かける「次へ」ボタンで表示するサイトです。

mceclip0.png

このようなサイトから「次へ」ボタンを指定するXPathはより簡単に書けます。

a) 「次へ」ボタンを右クリックしてから、「検証」を選ぶと、ボタンのHTMLが下記のようです。

mceclip1.png
mceclip2.png

b) Ctrl+Fを押すと、検索バーが現れます。

mceclip3.png

XPathの書き方で紹介した「contains(text(),"XXX")」を使って指定すると、下記のように書くことができます。

//a[contains(text(),"次へ")]

※<a>タグは「リンクを設定する」を意味します。

mceclip4.png

「次へ」や「次のページ」など名称をボタン上に表示する場合は一般的に「contains(text(),"XXX")」で対応します。とても便利ですので、ぜひお使いください。

c) 上記のXPathをOctoparseのページネーションのXPath入力ボックスに入れ替えます。

mceclip5.png

2.「>」で表示するボタン

例:https://www.ekiten.jp/gen_relax/tokyo/index_p2.html

こちらのサイトは「>」で表示するボタンを設定しています。

mceclip0.png

a) 「>」ボタンを右クリックしてから、「検証」を選ぶと、ボタンのHTMLが下記のようです。

mceclip0.png

例えば、

//a[@class="button"]

と書きますと、下記の画像のように、2つの「>」ボタンを指定してしまいます。

match2patterns.gif

そのため、XPathの書き方で紹介した『軸』の関係でaタグの一つ上の階層つまり親となるdivから指定します。そうすれば、正しいXPathを下記のように書くことができます。

//div[@class="p-pagination_next"]/a

d) 上記のXPathをOctoparseのページネーションのXPath入力ボックスに入れ替えます。

3.ページ番号で表示するボタン

例:https://www.hotpepper.jp/yoyaku/SA11/Y055/G001/

一部のWebページでは下記の画像のように、次のページに遷移する数字で表示しています。

mceclip0.png

このようなサイトにはXPathの書き方で紹介したfollowing-sibling::で次のページ番号を指定します。

a)ボタンを右クリックしてから、「検証」を選ぶと、ボタンのHTMLが下記のようです。

mceclip1.png

b) 該当ページ番号を指定します。

//ul[@class="pageLinkLinear cFix"]/li[@class="crt"]

c) それから、following-sibling::を使って次のページ番号を指定します。

//ul[@class="pageLinkLinear cFix"]/li[@class="crt"]/following-sibling::li[1]/a

このXPathはまずul要素の下にclass="crt"を含むli要素を指定します。つまり、該当ページボタンを指定します。

それから、li要素の後に1番目にくるli要素、つまりその次のページボタンを指定します。これでいつも次のぺージへ遷移するボタンを指定できます。

該当ページが2ページ目であっても、このXPathでは次の3ページ目も指定できます。

e) 上記のXPathをOctoparseのページネーションのXPath入力ボックスに入れ替えます。

続きを読む

こちらの回答で解決しましたか?