(盆栽とは関係のない記事です)Python のクローリングとスクレイピングで Kindle本の情報を掲載するサイトを作成しようとしましたが、失敗しました。
価格が結構変動する Kindle本
ちょくちょく、Amazon の Wishlist に入れてある Kindle本の価格をチェックしています。タイミングが合えば、半額セールとかポイント還元とかでお得になっています。
何度もチェックする行為に辟易
思い出したときに、Wishlist をチェックする行為になんとなく辟易(へきえき)してきました。なんだか、退屈なルーチンになってしまっているなあと。価格が変動したときに、通知が来る仕組みを作れないものだろうか。
値下げ情報サイトが存在してる
いくつかのサイトで、Kindle本の値下げ情報をあげているところがあります。もしかしたら、じぶんでこういうサイトを作れたりしないだろうか。ついでに、値下げ情報をまとめるサイトを作ってアフィリエイトを得られるようにする仕組みを構築できないだろうか。
Python のスクレイピングとは
コンピュータのプログラム言語に「Python(ぱいそん)」というのがあります。それを利用することで、ネットの情報を「自動」でゲットできる仕組みがあります。それをクローリング、といいます。その集めた情報を解析するのをスクレイピングっていいます。
スクレイピングにある問題点
ただ、クローリングによって、相手先のサーバに負担をかけてしまうことで損害を与えてしまうケースがあります。以前、ある図書館のデータベースをクローリングしたことで問題になった人もいるようです。加えて、スクレイピングした情報についても、(もし公開するのなら)今度は「著作権」という問題もあるようで。
本で得た情報:「API を使う」
API というのを使うと、相手先のサーバへの負担が少ないようです。それなので、Amazon のための API を利用した「python-amazon-simple-product-api」というプログラムを使うことにしました。このプログラムについては、下のリンクにある本(「Pythonクローリング&スクレイピング[増補改訂版] , 加藤耕太, 2019」)を読んで知りました。
Pythonクローリング&スクレイピング[増補改訂版] -データ収集・解析のための実践開発ガイド-
- 作者: 加藤耕太
- 出版社/メーカー: 技術評論社
- 発売日: 2019/08/03
- メディア: Kindle版
- この商品を含むブログを見る
Kindle本の価格は取得できず
ただ、このプログラムを使っても、Kindle本の価格情報だけ、None となりました(他のカテゴリの商品については価格情報を取得することはできるのですが)。API を使って本の商品 URL などは取得できます。それなので、URL をもとにクローリングする方法も考えたのですが、この方法は相手先に負担をかけるため、やらないほうが良いと判断しました。