logo
languageJPdown
menu

【非エンジニア向け】Octoparseでページループしてしまう問題の解決方法

約7分で読めます

WebスクレイピングツールのOctoparseをいつもご利用いただきありがとうございます。

今回はユーザーに向けて、Octoparseでページループしてしまう問題の解決方法をご紹介します。

ページループとはどのような問題か

OctoparseでWebスクレイピングを実行する際は、事前に用意されたプログラムを利用するテンプレートタスク。情報収集したいURLを指定し、ユーザー自身でプログラムを作るカスタマイズテンプレートの2種類があります。

ページループとは、カスタマイズテンプレートを使って「ページネーション」を設定する際に発生する可能性のある問題です。

ページネーションとは

ページネーション(pagenation)は日本語で「ページ割り」という意味を持つ言葉であり、Webサイトで以下のようなページ割を目にすることが多いと思います。

大量のコンテンツを掲載するWebサイトの場合、このようにページネーションを使って1ページあたりに表示される情報量を制限し、ユーザビリティ(サイトの使いやすさ)を高めています。

Octoparseではページネーションが設定されているWebサイトにおいても効率よく情報収集が行えるように、Webサイトごとのページネーションを識別し、「次へ」やそれに相当する要素を自動的にクリックする機能が備わっています。

特定のWebサイトではページネーションがループしてしまう

Octoparseはページネーションを識別するために要素のXpathを参照します。Xpathとは、Webサイトにあるすべての要素にそれぞれ割り当てられている個別の文字列のことです。

大半のWebサイトはページネーションの「次へ」やそれに相当する要素に対して、固定のXpathが指定されています。

しかし、一部のWebサイトのレイアウトではページが進むごとにXpathが変わってしまうケースがあり、それが原因となってOctoparseのページネーションがループしてしまう、あるいは途中で停止してしまう問題が起きてしまうのです。

ページループ問題の一例

例えば民泊サイトであるAirbnbの検索結果ページにて、ページネーションを設定すると次のような問題が発生します。

1ページ目から2ページ目の移動は問題ないが、2ページ目で「次へ」に相当する要素をクリックしようとすると15ページ目に移動してしまう。

15ページ目の次は14ページ目に移動してしまう。

14ページ目の次は再度15ページ目に移動し、ページループが発生。

このようなページループ問題が発生した場合、どのように対処すればよいのでしょうか?

Octoparseのページループ問題を解決する方法

前述のようなページループ問題を解決する方法は2通りあります。「単一のXpathを指定する方法」と、「ページネーションの移動をページ番号で指定する方法」です。それぞれ画像を交えてわかりやすく解説します。

単一のXpathを指定する方法

ページループが発生する問題の原因として、「一部サイトのレイアウトはページ切り替えに伴ってXpathが変更される」とご説明しました。ただし、そうしたWebサイトであっても単一のXpathを指定する方法があります。

まず、ブラウザでページネーションを設定したいページを開き、ブラウザの検証機能を起動してください。

検証機能の起動方法

Windows:Control+Shift+C

Mac:Command+Shift+C

検証機能が起動したら、「次へ」に相当する要素にマウスカーソルを合わせ、クリックします。すると検証画面で要素に該当するコードが強調表示されました。

ただし今回の場合、要素に該当するコードは「::before」と表示されている部分ではなく、その直上にある「a aria-label=”次へ”」と表示されている部分です。

表示されたコードを参考にしながら、次のような形式でXpathを指定します。

Xpathの基礎知識については、以下のリンクを参照してください。

XPath基礎編

//a[@aria-label=”次へ”]

これをOctoparseのページネーションにある「要素のXpath」に入力し、「保存」をクリックしましょう。

以上で設定は完了です。ページネーションが正しく機能しているか、「ページネーション」「次のページをクリック」の順番にクリックしてみます。

2ページ目は問題なく表示されました。では、再び「ページネーション」「「次のページをクリック」の順番にクリックしてみます。

2ページ目の次に3ページ目を表示させることに成功しました。同じ手順で4ページ目、5ページ目と移動することを確認できたので、これでページループ問題は解消です。

ページネーションの移動をページ番号で指定する方法

ごく稀にですが、先ほどご紹介した方法でページネーションを上手く設定できないケースがあります。そうした場合は「ページネーションの移動をページ番号で指定する方法」を試してみてください。

先ほどと同じようにブラウザの検証機能を起動したら、現在開いているページ番号にマウスカーソルを合わせ、クリックしてください。すると検証画面で現在のページ番号の要素にあたるコードが強調表示されます。

今回のコードは「button aria-current=”page”」となっているので、こちらを以下のような形式でXpathを指定します。

詳しくは、以下のリンクをご参照ください。

タグ関係で指定する

(//button[@aria-current=”page”])[1]/following::a[1]

先ほどのXpathより少し複雑なので、間違えないよう注意してください。ちなみに上記のXpathでは「現在表示されているページの次のページ番号」を指定しています。

そのため現在表示されているページが1ページ目なら2ページ目、現在表示されているページが2ページ目なら3ページ目を指定するようになっています。

では、先ほどと同じようにOctoparseのページネーションにXpathを入力し、正しく機能するかテストしてみましょう。

まず、1ページ目から2ページ目は問題なく移動できました。再度「ページネーション」「「次のページをクリック」の順番にクリックしてみます。

2ページ目から3ページ目も問題なく移動できました。それ以降もページネーションは問題なく機能したので、ページルーム問題解消です。

困った時はOctoparseへお問い合わせを

いかがでしょうか?今回はOctoparseでページループ問題が発生した際の解決方法についてご紹介しました。

今回ご紹介した方法でページループ問題が解決できなかった場合や、他の問題が発生しWebスクレイピングを実行できない場合は、Octoparseへお気軽にお問い合わせください。

お問い合わせは起動したOctoparseへアプリの右下、チャットマークをクリックすると送信できるようになっています。

問題に対するお問合せだけでなく、テンプレートタスクのリクエストも承っておりますので、サポートを活用しながらOctoparseを快適にご利用いただければと思います。

人気記事

トピックを検索する

今すぐOctoparseを始めて、業務効率化を実現しましょう。

関連記事

  • avatarTakahashi
    近年、ビッグデータ分析に用いるデータ収集のために、Webスクレイピングを利用するケースが増えています。しかし、ビッグデータの専門家ではない多くの人からすれば、「そもそもWebスクレイピングとは何か?」と疑問に思うことでしょう。そうした疑問を解消するために、今回はWebスクレイピングに関してよくある質問15選をまとめて紹介します。
    2023.01.30 · 7 min read
  • avatarTakahashi
    Octoparseをはじめとした「Webスクレイピングツール」が登場したことで、多くの分野でWebスクレイピングの活用が進んでいます。しかし、Webスクレイピングを問題視する声も少なくありません。例えば、Webスクレイピングによって相手サーバーに負荷が掛かり、最悪サーバーダウンにつながる可能性があります。もし、サーバーダウンによって相手の業務に支障がでたら、損害賠償責任や偽計業務妨害罪などに問われるでしょう。 そのため、Webサイト所有者はWebスクレイピングを制限するために、スクレイピング防止技術を装備して、Webスクレイピングはより困難になっています。しかし、スクレイピングを相手にバレないようにする方法はまだあります。 本記事では、スクレイピングをバレないようにするための5つのヒントを解説します。ちなみに、スクレイピング行為自体は違法ではありません。不安に感じる方は以下の記事も合わせてご覧ください。
    2022.07.29 · 6 min read
  • avatarOctoparse
    本記事では、PythonでのWebクローラー開発について、初心者向けのチュートリアルです。BeautifulSoup、Seleniumなどの基本的なライブラリの使い方と、サンプルコード付きのチュートリアル形式で解説します。Pythonでプログラミングして、Webサイトからデータをクローニングして、CSVファイルに書き込む、というようなWebクローラーを実際に作成してみましょう。
    2021.05.20 · 5 min read
  • avatarOctoparse
    今回は初心者向けにPHPでスクレイピングを行う方法について紹介します。初心者でも簡単なPHPクローラーを作ります。実際にプログラムコードを書いて説明しているので、ぜひ試してみてください!
    2021.04.12 · 5 min read