AJAXを扱う方法

Sunday, April 08, 2018 7:58 AM

このチュートリアルでは、スクレイピングでAJAXを扱う方法を紹介します。

AJAXはAsynchronous JavaScript and XMLの略で、Webページを再度読み込まなくコンテンツの一部を更新できるウェブ開発技術です。AJAXが適用されたWebページを更新すると、リロード記号は表示されません。

 

 

 

 

 

1) Octoparseを使う時、なぜAJAXの扱いが必要ありますか?

Webデータをスクレイピングしている間、Octoparseは、「Click item」や「Click to paginate」などのアクションを実行する信号として再読み込みを行います。 AJAXを使っているWebページでは、リロードせずに新しいコンテンツを更新します。再読み込みがないので、Octoparseは動作の信号を受信できず、最後のステップで停止します。ですから、データの抽出ができなくなったり、予想より少ないデータが得られる可能性があります。

ですから、AJAXを使ってWebページからデータをスクレイピングする場合は、Octoparseが順調に行うようにAJAXタイムアウトを設定する必要があります。例えば、「Click to paginate」ステップにAJAXタイムアウトを2秒に設定すると、Octoparseは2秒間待機してアクションを実行します。この場合、Octoparseはリロード信号を待つ必要はありません。

 

2) OctoparseでAJAXタイムアウトを設定するタイミングと方法は?

Webサイトは通常、「Load more」や「View reviews」などクリックする必要がある要素にAJAXを適用するため、「Click to paginate」や「Click item」などの手順には、AJAXタイムアウトの設定が非常に必要です。

まず、AJAXがあるかどうかを確認する必要があります。要素をクリックしてページを更新した後にリロード記号がない場合は、その要素がAJAXを適用していることを確認できます。

 

AJAXタイムアウトを設定するには、「Customize Action」で「AJAX Load」の「Load the page with AJAX」を選択します。

 

Load the page with AJAX」をチェックした後、AJAXタイムアウトを設定できます。 通常、2〜4秒をお勧めします。

 

 

3) AJAXがない場合、AJAXタイムアウトを設定しないでください。

再読み込みの必要があるページをスクレイピングするとき、AJAXタイムアウトを設定しないでください。そうしないと、Octoparseは設定したAJAXタイムアウトによってページの再読み込を停止し、ページの読み込みが不完全になる可能性があります。Webページが完全に読み込まれない場合、データの抽出やステップの実行に問題が起こるかもしれません。

 

 

関連記事:

レッスン6:ページ遷移の扱い - 複数のページからデータを抽出する

ログインした後のデータ取得

 

 

 

 

btn_sidebar_use.png