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

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) 「Go To Web Page」 - 内蔵ブラウザで対象のWebページを開く

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

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

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

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

 

 

 

1) 「Go To Web Page」 - 内蔵ブラウザで対象のWebページを開く
  • 「Advanced Mode」を選択し、タスクを作ります。 自由度の高い「Advanced mode」は、複雑なウェブサイトを対応できます。
  • URLを入力して「Save URL」をクリックします。
  • 「Workflow」をオンにするとタスクの作りはやすくなります。

 

 

 

2) ページ遷移のループを作る - 複数のページからデータを取得する
  • ページの下にある「次のページ」ボタンをクリックし、「Action Tips」パネルから「Loop click the selected link」を選択します。

 

 

 

3) データを抽出する - 抽出したいデータを選択する
  • ステップ2では、2ページ目に移動しました。ですから、「Go To Web Page」をクリックして1ページ目に戻ります。
    「pagination」をクリックします。
  • 必要なデータをクリックすると、Octoparseはページ内の同じのデータを自動的に識別します。(今回は送料を取得したいので、2番目の商品情報を取得例として選択します。)
  • 「Action Tips」にある「Select all」をクリックします。
  • 「Extract data」をクリックします。
  • 必要に応じて、フィールド名を編集します。

 

 

 

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

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

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

また、「Wait before execution」に2秒を選択します。

 

ヒント!

1.タスクを作った後、チェックするのは大事です。特に「Pagination」と「Loop Item」です。

2.抽出の速度が速すぎると、エラーが発生しやすいです。ですから、「Wait before execution」の設定が必要です。(通常は2秒です。)

 

 

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

 

 

 

 

ヒント!

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

 

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

 

 

btn_sidebar_use.png