ウェブサイトからデータをスクレイピングしたことがあるなら、タブの中からデータをスクレイピングすることにすでに慣れていると思います。1つのウェブページに大量の情報を表示する必要がある場合、タブを使用して情報を整理するのが一般的です。特定のタブをクリックすると、それぞれの情報が表示されます。
例として、このウェブページを見てみましょう:
このページでは、「新築」タブと「ペット可」タブのデータを表示したい場合、それぞれのタブをクリックする必要があります。
「ペット可」タブの中からデータを抽出したい場合、どうすれば良いでしょうか。タブの中からデータを取得するには2つの方法があります。
1. タブをクリックしてからタブ内のデータをスクレイピングする
明らかに、Octoparseにタブをクリックして、それぞれのタブからコンテンツをスクレイピングするよう指示できます。
「ペット可」タブをクリックします。
操作提案パネルで「選択した要素をクリックする」を選択します。
AJAXを設定します。ネットワークスピードに基づいてAJAXタイムアウトを調整できます。
次に、取り込みたいデータをクリックし、操作提案で「テキスト」を選択します。
2. タブのコンテンツがソースコードにある場合、タブ内のデータを直接スクレイピングする
情報が異なるタブに分類されていても、それぞれのタブのコンテンツは、タブがクリックされているか否かに関わらず、ソースコード内にすでに存在する場合があります。この場合、まずブラウザモードでタブのコンテンツを表示させ、その後直接ターゲット情報をスクレイピングすることができます。この方法では、ワークフローにアイテムをクリックアクションを追加する必要はありません。
タブのコンテンツがソースコードで提供されているか確認するには、普段使っているブラウザでウェブページをロードし、キーボードの「F12」を押します。
ソースコードを調べ、ターゲットコンテンツがあるか確認します。このサンプルページでは、「新築」タブをクリックしていないのに、対応するデータをソースコードで見つけることができました。つまり、タブをクリックすることなく、タブコンテンツを直接スクレイピングできることがわかります。
Octoparseに戻り、組み込みブラウザの右上隅のボタンをクリックして、ブラウザモードに切り替えます。
「新築」タブをクリックしてコンテンツを表示させます。
ブラウザモードのボタンをもう一度クリックして、ワークフローモードに切り替えます。
取り込みたいデータをクリックし、操作提案で「テキスト」を選択します。
これでタブコンテンツが直接取り込まれました。