読者です 読者をやめる 読者になる 読者になる

BuzzLog / バズログ

BuzzLog / バズログはニュースとエンターテインメントを伝えるメディアです

Python で Amazon Product Advertising API と Twitter API を使う

Web API の利用はたったの 3 ステップ

基本的に各社が提供する Web API サーバー向けにHTTP リクエストを投げると、
XML, json といったフォーマットでレスポンスが取得できます。
ほとんどのWeb API は認証の仕組みを取っていて、
呼び出し回数などに制限があります。

基本的に、

  • 認証処理(OAuth 等)
  • API ドキュメントに沿って HTTP リクエストを投げる
  • レスポンスをパース

という 3 step になります。

脱!車輪の再発明

決まった処理しかやらないので、
世間にはオープンソースが溢れております。
特に OAuth認証処理とかスクラッチで実装するのはしんどいですよね。

私が最初に開発始めた当初は、
Python 使って requests でHTTP リクエスト投げて lxml でパースとかやってました。

これも結構時間かかります。
API 仕様を理解して、
指定されたフォーマットのリクエスト投げて、
レスポンスをパースして欲しいデータを抽出
みたいな。。
世の中には良いオープンソースが溢れているので、
時間を浪費しないためにも積極的に利用しましょう。

Amazon Product Advertising API

PythonAmazon Product Advertising API 使うなら外せないのは bottlenose。
いい感じに面倒なことを抽象化してくれています。
API インタフェースも直感的でとても良いです。

github.com

bottlenose だけでもそれなりのものは作れますが、
レスポンス取得後のパースが面倒。
パース周りもお手軽にしてくれるのが amazon-simple-product-api

Python 製のシンプルな Product Advertising API のラッパーで、
いい感じにパースしてくれちゃいます。
内部的には上述した bottlenose が使われています。
パーサーには lxml が使われています(環境によってはインストール少し苦労するかも)。 大分レイヤーは薄く作られていて理解しやすいです。
Python のコードの勉強にもなります。

github.com

twitter

Twitter は OAuth2 認証をしなきゃならなくて若干めんどくさい。 これもいい感じの wrapper があります。

github.com

参考資料

オープンソース利用にあたり、内部実装どうなってるのかの理解が必要です。
結構洗練されてる書き方が多くて勉強になりますが、
当然 Python の基礎的な技術の理解が必要になります。 基礎文法は入門 Python3 で必要十分な情報が網羅されてます。

入門 Python 3

入門 Python 3