楽天市場の商品レビューを取得して好きなように扱う方法を考えてみた 2

楽天市場の商品レビューを取得して好きなように扱う方法を考えてみた 2

楽天市場の商品レビューを取得して好きなように扱う方法を考えてみた 2

前回記事はこちら『楽天市場の商品レビューを取得して好きなように扱う方法を考えてみた

楽天市場対応機能として、Ranking表示機能が完了しました。
店舗ページ作成の自動化を目指す私としては、ページサポートツールとして欲しい機能は残り4つ。

  1. レビュー取得&新着レビューリスト
  2. 店長オススメ商品リスト
  3. PICKUP商品リスト
  4. 今注文すると(この商品)最短〇月〇日発送ですリスト

この中で一番頭を悩ませているのが『レビューの取得方法』です。

前回考えてみた3つの取得方法

  1. RMSのレビューチェックツールをスクレイピング
  2. RMSのレビューチェックツールからレビューCSVをダウンロード&システムへインポート
  3. 顧客側のレビューページからスクレイピング

最終的には人の手が無くても店舗ページを可変させてくれる仕組みにしたいので、やるとしたらスクレイピング。

でも項目1はRMSへのログインが必要で『2段階認証』なるものが登場している今、自動化のハードルは高いものがあります。ヘッドレスブラウザでRMSに入るのが難しいですから…。

となると、残りは項目3。

店舗レビューは良いが商品レビューが難しい

店舗レビューは専用のページがあるのでURL渡してコード読んでDBに蓄積すれば何とかなります。

問題は商品レビュー。

既に商品のレビュー数(と平均点)チェックツールは作成しているので「この値の変化をトリガーにしてその商品のレビュー見に行けばいいじゃん」何て思ったのですが、商品レビューって『どの商品か』という情報をPOSTしてるのね。
POST…怖いなぁ。GETだったらURL弄ればいいから何とかなると思ったんだけど、POSTかぁ。

いろいろと検証してみた所、商品コードをGETで渡しているみたい。

https://review.rakuten.co.jp/item/1/{店舗コード}_{楽天が管理する商品ID(例:10034468)}/

こんなURL構成になっている様子。
と言う事は、何某かの手段を使って『楽天が管理する商品ID』を取得出来れば自動化できそうです。

  1. 商品情報APIに接続してレビュー数を取得
  2. DB内のデータと差異がある場合レビューページへアクセス
  3. スクレイピングで差異数のレビューを取得
  4. DBへ保存

現状最も現実的なのは手動指示

2段階認証突破する方法が無い限り、ログインした後にRMSのレビューページからスクレイピングが最も現実的なのは間違いない。
そして、この方法はログインしていない時には使えないので自動化はできない。

『レビューのメールから取る方法もあるか』
と書きながら浮かんできたけど、POPサーバーからの読込を仕込むのはウィルスメールの対応も考えなきゃなので(知識不足により)当面却下。

やっぱりRMSログイン後にシステム側の取得ボタン押して動作開始というのが現実的。
う~ん、イマイチ納得できないけど妥協も必要か。
まぁうちのレビュー記載率は凄く悪いのでそれでも足りるかな。

前回調査時に判明した課題

RMSのレビューページからのスクレイピングの場合、難問が1つありました。

それは出品URLが見えない事。
リンク先は商品ではなくレビューページに貼られている為、商品URLが解らない。

悩んだ結果、1筋の光明が見つかりました。
それは、商品画像の画像名から取れば商品情報にたどり着けるのでは?というもの。

自作システムでは、商品画像を商品情報番号と同一名を付けアップロードしています。
この画像名から商品情報を引き当てできる可能性は大です。

商品URLと紐付けしてよいか

現実味が出てきたところで、もう一点悩みが生まれました。
「レビューと商品URLを紐付け管理しても良いか」

レビューの引継ぎを考えたシステムであるため、同一URLのマイナーチェンジで商品が変わります。
この際、レビューリストに別商品だった時のレビューが乗るのを妥協するか。
楽天システム内のレビュー確認ページはしょうがないけどね。

よく考えた末、URLまで関連付けずに商品情報番号までにしておこうと計画。
利用時には出品URLを追えるから商品へのリンクにできるし、課題はコピー出品だけど、こんなのスーパーセールの時以外動かないし、まぁここら辺が落としどころではないかと。

データが取れてしまえば後はバナー方式で

ゴールドとiframeとJSつかってゴニョゴニュするやつね。
この方式知ってると「Googleアナリスティクスとかも仕込めるかも」とちょっとワクワクしてます。

まぁルールに抵触していると言われると困るのでデカい声でお伝えする事はできませんが…。
公式ツールも利用している方法なので問題ないと思ってますけどね。

今注文すると(この商品)最短〇月〇日発送ですリスト

これ使ってる店舗複数ありましたけど、一律の納期しか表示されないみたいですね。

多分こんな機能です。

  1. 最短発送日を1つだけ登録
  2. 当日発送の受付終了時間を設定
  3. 現在の日時を取得
  4. 2で登録した時間からオーバーしていたら最短発送日に+1して表示
  5. 2で登録した時間前だったら最短発送日をそのまま表示

だから『いま閲覧している商品の最短発送日』にならないんですね。

JSの読込トリガー調整すれば商品毎の最短発送日を表示できるような気がするけどなぁ。
Frame使ってやろうと思っていたのですが、メンターから「フレームを超えたjs同士のやり取りはできない」とご指摘いただきました。「重大なセキュリティーホールになる」と。

なるほど、だから固定の日数で表記になってるのか。
やるとするとページ内にjs仕込む事だけど、楽天ページではこれが出来ないので商品毎に可変する仕組みは実質無理。う~ん…。

店長オススメ商品リスト&PICKUP商品リストは動きのコントロールが課題

リスト作って抽出は簡単なので、後はそのリストをどう見せるかが課題です。

画像を5個並べて改行したとして、アイテム数によって高さのコントロールしたいし。

空白が多くなるのは嫌だなぁと。

そうなると、商品バナーリストとかもあった方が良いのかな。

まとめ

自動化してしまおうと考え出したら欲しいパーツがいくつも出てきました。

レビュー以外は何とかなるような気がしてるのですが、さてどうなるか。

1か月くらいで目途立てたいと思います。