管理者権限のない環境で必要なモジュールをインストールし、python言語を使ってAmazonの商品検索api(Amazon Product Advertising API)によりISBN番号で書籍を検索してみました。

Python実行環境の構築

管理者権限のない環境では、Pythonで書かれたパッケージソフトウェアをインストール・管理するためのパッケージ管理システム「pip」を最初に使えるようにインストールします。自分でインストールするパッケージは、$HOME/.local/以下にまとめてインストールします。まずディレクトリを次のコマンドで作成します。

$ mkdir /home/hoge/.local/lib/python2.7/site-packages

vi等を使って、$HOMEにある.cshrcを編集します。「set path=~」の部分に、以下のように「$HOME/.local/bin」を追加します。

set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin 

編集した「.cshrc」を反映します。

$ source .cshrc

以下のコマンドでpipをインストールすると、上記で指定したディレクトリにパッケージがインストールされ、実行ファイルは $HOME/.local/binに設定されます。

$ easy_install --prefix=$HOME/.local pip

Amazonの商品検索に必要なモジュールは、 pip を使用してインストールします。

$ pip install --install-option="--prefix=$HOME/.local" bottlenose
$ pip install --install-option="--prefix=$HOME/.local" lxml 
$ pip install --install-option="--prefix=$HOME/.local" BeautifulSoup4 
$ pip install --install-option="--prefix=$HOME/.local" urllib3

書籍検索アプリの作成

Amazon Product Advertising APIのPython「bottlenose」を使用し、戻り値が xml なため、BeautifulSoup でパースします。

# coding=utf8
import bottlenose
from bs4 import BeautifulSoup

ACCESS_KEY = "xxxx"
SECRET_ACCESS_KEY = "xxx"
ASSOCIATE_TAG = "xxxx"

amazon = bottlenose.Amazon(ACCESS_KEY, SECRET_ACCESS_KEY, ASSOCIATE_TAG, Region="JP")
response = amazon.ItemLookup(ItemId="4839930244", ResponseGroup="ItemAttributes",SearchIndex="Books", IdType="ISBN")
soup = BeautifulSoup(response,"lxml")
print(soup.title) 

書籍検索アプリの実行

次のコマンドで書籍検索アプリを実行すると、検索した結果のtitleタグの部分だけが出力されます。

$ python amazonsearch.py
<title>Flash Liteで作る携帯コンテンツ実践教科書 (Web Designing BOOKS)</title>