ECモールからデータ一覧取得方法について調べてみた

ネットでウィンドウショッピングするのは楽しいですよね。
気がつくと、1,2時間ネットをうろうろしてしまいます。

ただ、至福の時間ではありますが、この時間は生産性が無く無駄だなと思う心があります。
安く買いたいが為に張り付くのが目的になっていると特にそう思います。 そんなとき、メールやダイレクトメッセージで、安くなった時だけ教えてくれるツール作れないかなと思ってしまいます。

そこで、自分が欲しいものの情報を引っ張ってくる方法について下調べをした結果を題材にします。

この記事で得られる事

  • 各サービスごとにどの様な方法でデータを取ってくるのか参考になる

まずデータから考える

ネットショップ担当者フォーラムで記事にEC売上高ランキングが公開されています。 netshop.impress.co.jp

f:id:nakahashi_h:20180114004637p:plain

出典:ネットショップ担当者フォーラム

上位5件を抽出すると以下の様になります。

1位 amazon
2位 ヨドバシ
3位 スタートトゥディ(zozotown)
4位 千趣会ベルメゾン
5位 Rakuten Direct

私の買い物の傾向を考えると、スタートトゥディと千趣会は除きます。
ただ、これでは価格.comを見れば良いだけの話になってくるので、「ヤフオク」と「メルカリ」も追加します。

データの取得方法(私個人調べ)

簡単に調べて見ましたが、下記の様になります。

サービス名 データ取得方法 備考
amazon API Amazon Product Advertising API
ヨドバシ.net スクレイピング APIの公開なし。リソース読み込みを見てもリソースの中に商品情報をやりとした形跡がない。バックエンドで全て処理していると思われる
メルカリ スクレイピング? APIの公開なし。リソース読み込みを見る限り、jsonをサーバーからでデータを取得してフロントエンドで展開
ヤフオク API オークションWebAPi
楽天 API 楽天商品検索API

※2018年1月時点の方法

ヨドバシについて

フロントエンドで商品情報を読み込んでいる様子はないので、サイトをスクレイピングして情報を引き抜く方法になりそうです。
ただし、jsDetailShoppingCategory2Jsonという変数名に検索結果のjsonを書き出しています。
ピンポイントにこの変数を引っ張ってくれば対応できる気がします。

var jsDetailShoppingCategory2Json = <json>

メルカリについて

APIは公開されていないものの動的なjsonで処理をしている様なので糸口はありそうです。

https://www.mercari.com/jp/masters/brands/ja_JP.json?<ユニークキー>

ただ、現時点では検索結果毎のキー情報との因果関係がわからないので難しそうです。

ヤフオクについて

2018年1月現時点では特に問題ありません。
しかし、2018年2月末でサービスを終了するので、次の動向次第です。

developer.yahoo.co.jp



簡単に情報を洗って見ましたが、メルカリとヨドバシは難しい気がしています。
メルカリについて調べて見ると、スクレイピングで対応しようとする人や、Androidアプリであればソースが確認できるので解析しようとする人もいます。
しかし、無料で手に入れる情報はありませんでした。

引き続き調べてみようと思います。