LaravelでスクレイピングしてAmazonのおすすめ度を取得【#np2020】

Amazonで参考にするものと言えばレビューとそれに基づいて表示されるおすすめ度の星の数。商品表示するときにその星の数を取得出来ると良いんですけど、残念ながら現在のAPIでは提供されていません。提供されているのは、レビューとおすすめ度が表示されたページのURLだけです。例えばこんな感じ。





そのまま商品表示に乗せるのには大きすぎるし、出来れば星の数の部分だけ取得してきたい。
(2019/08/24追記:掲載期限が決まっているので時間が経つと表示されなくなります)


というわけで、スクレイピングです。




Laravelでスクレイピング

Laravelでスクレイピングするには「Goutte」を使うのが定番のようなので、こちらに従ってインストールします。といってもcomposerでインストールして、config/app.phpに記載するだけですが。


LaravelでGoutteを利用してWebスクレイピング – Qiita


使い方はこんな感じです。



これで$review_urlをスクレイピング出来ます。


星の数を取得する

星は画像で表現されているので、その画像のURLが取得出来れば十分です。取得の仕方は次の通り。



これで画像を取得出来るので、あとはそれを表示するだけ。


表示例




ね、簡単でしょ?