楽天市場から商品価格をスクレイピングする

Tuesday, June 12, 2018 11:06 AM

以前、AmazoneBayから商品情報のスクレイピングする方法を紹介しました。今回はOctoparseを使って、日本最大級のインターネットショッピングサイト「楽天市場」から商品価格をスクレイピングしようと思います。

 

この度、メンズ腕時計の価格を取得します。

次のURLを例として使います。

https://www.rakuten.co.jp/category/301981/?l-id=top_normal_gmenu_d_watch_002

 

以下はチュートリアルの主な手順です。 [タスクファイルをダウンロードする]

1) 「Webページを開く」 - 内蔵ブラウザで対象のWebページを開く

2) ページ遷移のループを作る - 複数のページからデータを取得する

3) データを抽出する - 抽出したいデータを選択する

4) Xpathカスタマイズ - データ取得を正しくする

5) 抽出タスクを始める - タスクの実行を行いデータを取得する

 

 

 

1) 「Webページを開く」 - 内蔵ブラウザで対象のWebページを開く
  • カスタマイズモード」を選択し、タスクを作ります。 自由度の高い「カスタマイズモード」は、複雑なウェブサイトを対応できます。
  •  URLを入力して「URLを保存する」をクリックします。
  • ワークフロー」をオンにするとタスクの作りはやすくなります。

 

 

2) ページ遷移のループを作る - 複数のページからデータを取得する
  • ページの下にある「次のページ」ボタンをクリックし、「操作ヒント」パネルから「選択したリンクをループクリップする」を選択します。

 

 

 

3) データを抽出する - 抽出したいデータを選択する
  •  ステップ2では、2ページ目に移動しました。ですから、「Webページを開く」をクリックして1ページ目に戻ります。
    ページネーション」をクリックします。
  •  必要なデータをクリックすると、Octoparseはページ内の同じのデータを自動的に識別します。(今回は送料を取得したいので、2番目の商品情報を取得例として選択します。)
  • 操作ヒント」にある「すべてのサブ要素を選択する」をクリックします。
  •  不要なデータを削除します。
  •  必要に応じて、フィールド名を編集します。

 

 

 

 

 

4) Xpathカスタマイズ - データ取得を正しくする

    ワークフローの「次のページをクリックする」をクリックし、ほかのページの「ループアイテム」が正しいかどうかをチェックします。タスクをチェックした結果、2ページ目からの「ループアイテム」に何もありません。ループ条件は間違っているのをわかりました。ですから、 Xpathをカスタマイズしなければなりません。「変数リスト」に正しいXpathを入力します。

    //div[@class='dui-cards searchresultitems']/div[not(contains(@class,'empty'))]

    また、「実行前に」に2秒を選択します

 

 

 

 

ヒント!

1.タスクを作った後、チェックするのは大事です。特に「ページネーション」と「ループアイテム」です。

2.抽出の速度が速すぎると、エラーが発生しやすいです。ですから、「実行前に」待つ時間の設定が必要です。(通常は2秒です。)

 

 

5) 抽出タスクを始める - タスクの実行を行いデータを取得する
  • 保存する」をクリックします。
  • 抽出開始」をクリックします。

 

 

 

 

 

 

ヒント!

ローカル抽出 」で抽出するのは、タスクが順調的に行われるかどうかを確認できます。テストにはよく使われています。もし、タスクに問題がなければ、「クラウド抽出」ではタスクのスケジュールもできます。

 

この記事は役に立ちましたか?もしご不明な点がございましたら、いつでもお問い合わせください! 

 

 

btn_sidebar_use.png
btn_sidebar_form.png