注意:このページでは、旧バージョンのチュートリアルを紹介しています。最新のチュートリアルを表示するには、helpcenterに移動してください。

AJAXが使われたWebサイトでなぜ重複データを取得し続けるのか?

2019年06月25日

 

タスクが重複データを抽出し続けるのは、WebページにAJAXが使われている原因だと考えられます。このチュートリアルでは、AJAXが使われたWebページでデータが重複に取得されるのを避ける方法を学びます。

 

 AJAXとは何ですか?

AJAXはAsynchronous JavaScript and XMLの略です。これは、Webページがページを更新することなくコンテンツの一部を更新できるようにするプログラミング手法です。AJAXが使われたWebページをクリックして一部の内容が更新されても、リロード信号が表示されず、WebサイトのURLも変更されません。AJAXが不定期スクロールとして頻繁に使用されます。例えば、以下の場合。ページの一番下まで連続してスクロールする必要がある場合や、「もっと見る」ボタンを繰り返しクリックしてページコンテンツを完全に読み込む必要がある場合などです。

 

例としてhttps://news.yahoo.co.jp/を見てみましょう。

「もっと見る」をクリックした後にサイトがAJAX読み込まれます。Octoparseでタスクのワークフローを見てみましょう。

Octoparseはワークフローの各ステップをトップダウン、インサイドアウトの順番で実行します。特にnews.yahooの場合、「もっと見る」ボタンを繰り返しクリックすることでページネーションが実現されます。ワークフローの実行手順は以下のようです。「ループアイテム」ですべてのリストが抽出され、その前のステップ「ページネーション」に戻り、「もっと見る」ボタンがクリックされ、以前に抽出されたものも含むすべての利用可能なリストがループされて抽出されます。このワークフローだと、多くのデータが重複に抽出されました。

 

解決方法は?

この前のワークフロー手順ではデータが抽出されるたびに「もっと見る」ボタンを一回クリックしてからデータを抽出するように設定されています。ですが、これは重複データを抽出する可能性があるため、この問題を解決するには「もっと見る」ボタンをクリックする回数を設定してからすべてのコンテンツが読み込まれてからデータを抽出し始める方法があります。ここではちょっとワークフローの手順を変更してみます。

「ループアイテム」ボックスをページネーションループからドラッグして、ページネーションループの真下に配置し、「ページネーション」の終了回数を設定します。このようにして、タスクは設定された回数までページネーションのステップを実行してからデータ抽出を始めるようになります。これで重複データをを避けて必要なデータをすべて抽出することができます。

 

 

 

関連記事:


AJAXを扱う方法

無限スクロールでの読み込み

なぜ「次へ」をクリックした後にOctoparseが止めるのですか?

なぜOctoparseは最初のアイテムだけを抽出して重複のデータを取得するのですか?

 

 

btn_sidebar_use.png
btn_sidebar_form.png
当社ウェブサイトは、利便性、品質維持・向上を目的に、Cookieを使用しております。詳しくはプロキシーをご確認ください。Cookieの利用に同意頂ける場合は、「同意する」ボタンを押してください。同意頂けない場合は、ブラウザを閉じて閲覧を中止してください。
同意する 閉じる