【Python】スクレイピングとAPIを用いた楽天の商品情報取得プログラム
クラウドソーシングサイトに様々なプログラミング案件があります。今回は楽天の商品情報を抽出するスクリプトを書きました。
2020/02/22:全画像URL取得機能と検索商品全取得機能を追加
動作環境
python3.x系
必要モジュール:Beautifulsoup, requests
OS:Windows, Mac, Linux
機能
①楽天でキーワードと金額を指定して検索
②検索結果で出てきた商品の情報を抽出
・価格
・在庫
・商品コード
・商品タイトル
・商品画像URL
・商品説明
③CSVに出力
④プログラムの再実行で同じファイルに追記する。
動作
まず56行目にAPIのアプリケーションIDを入力してください。そのまま数値を入力します。文字列ではありません。
APIについて詳しくは→https://affiliate150.com/rakuten-app-id
次にプログラムを実行すると商品名を聞かれますので入力します。日本語でも可。
次に検索する価格帯です。
最低価格を入力。その後最高価格を入力。
プログラムの動作ですが、まずAPIを用いて商品情報を抽出します。ここから商品名や価格、商品URL、商品説明などを抽出します。次にスクレイピングを使って画像データのURLを収集します。楽天APIでは今の所最大3枚までしか取得できません。しかし、実際には3枚以上の画像を使っているショップがほとんどです。
したがって、スクレイピングで画像URLを取得します。楽天では高アクセス、高頻度のアクセスを行うとスクレイピングによって503エラーで弾かれるときがあるので、5回トライして、それでも取得できない時はAPIで取得した画像(最大3枚まで)のURLを抽出します。
1商品1分程度で取得します。楽天のサーバーに負荷を掛けないように敢えて1分程度のペースでアクセスするようにしています。
具体的なスクリプトは下記に書いていますので、上記のことに納得してから購入してください。