Page-level ads

python と ヤフオクAPI を使って、商品のサムネイルを1枚の画像に合成し、商品説明に表示する方法 – つまさぽ(妻のサポート)

PC修理販売 技術

python と ヤフオクAPI を使って、商品のサムネイルを1枚の画像に合成し、商品説明に表示する方法

投稿日:2017年1月17日 更新日:

ws-pc-top

ヤフオクの商品説明に他の出品商品の画像を表示し、他の商品へ誘導しようと思いました。

しかし、imgタグを使って商品説明に表示できる画像の枚数には制限があります。

そこでpythonとヤフオクAPIを使い、複数の商品サムネイル画像を合成し1枚の画像にして商品説明に表示することにしました。

ws-pc-more

環境

  • MacOS Sierra
  • python3.5.2
  • (Heroku上でも動作することを確認しています)

ソース

config.ini

create-yauc-image.py

使い方

ソースの保存

上記2つのソースをそれぞれ任意の同一フォルダに保存してください。

ファイル名は下記のとおりとします。

  • config.ini
  • create-yauc-image.py

config.ini の修正

appid

Yahoo! JAPAN WebサービスのアプリケーションIDを設定します。

アプリケーションIDの取得方法は デベロッパーネットワークトップ > ご利用ガイド を参照してください。

font

フォントファイルへのパスを指定します。

OSにはフォントファイルが保存されていますので、お好みのフォントファイルをコピーしてconfig.iniと同じフォルダに保存してください。

ファイル名に日本語(2byte文字)が含まれている場合は、半角英数字(1byte文字)に変名しておいたほうがよいかもしれません。

Mac のフォントファイル格納場所

ここにフォントファイルがあります。

Windows のフォントファイル格納場所

フォントのインストール(Windows 10/8/7/Vista)を参考にしてください。

ftp_host

FTPサーバーへアップロードする場合は、FTPサーバー名を設定します。

ftp_user

FTPサーバーへアップロードする場合は、FTPサーバーのユーザー名を設定します。

ftp_pass

FTPサーバーへアップロードする場合は、FTPサーバーのパスワードを設定します。

ftp_path

FTPサーバーへアップロードする場合は、FTPサーバーのアップロード先ディレクトリを設定します。

create-yauc-image.py の修正

の部分をお好みに修正します。

ヤフオクAPIにリクエストし、そのレスポンスをJSON形式で取得します。

検索条件は下記の通りに指定します。

デベロッパーネットワークトップ > オークション > 検索 も参考にしてください。

  • 第一引数:検索キーワード
  • 第二引数:カテゴリID
  • 第三引数:出品者のヤフオクID
  • 第四引数:検索範囲
    • 0x2 :「タイトル+ストア用検索キーワード」で検索
    • 0x4 :「タイトル+本文」で検索
    • 0x8 :「タイトルのみ」で検索

生成した画像を保存したい場合 img.save()

上記の例では、do_json で 4列x2行の合成画像を生成します。

これで img1.jpg というファイル名で保存されます。

生成した画像を表示したい場合 img.show()

これで 生成した画像が表示されます。

FTPサーバーにアップロードする場合

FTPへアップロードするための情報を保存する辞書オブジェクトを定義します。

辞書オブジェクトは、{ “画像ファイル名” : 画像オブジェクト } となるように保存します。

FTPサーバーにアップロードします。

実行

ターミナルから create-yauc-image.py を実行してください。

おわりに

私は、Herokuにデプロイして、1時間毎に実行するようにしています。そうすることで、常に最新の情報を商品説明に表示することができます。

yaucapi_searchをカスタマイズすることで、検索条件を増やすことができます。お試しいただけたらと思います。

参考

下記のサイトを参考にさせていただきました。ありがとうございます。

ws-pc-btm

ws-pc-btm-right

-PC修理販売, 技術
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

9.5mm厚のブルーレイドライブのベゼルを取る方法

はじめに 9.5mm厚のブルーレイドライブのベゼルを取る機会が有りましたので、写真付きで説明したいと思います。

Crayon Syntax Highlighter

Crayon Syntax Highlighter のテーマ一覧

はじめに 技術系ブログを運営する上でのあこがれ、Syntax highlightingを導入しました。 業務で技術系の調査をしている時に、Syntax highlightingを使って情報を提供してい …

Parallels Desktop から VirtualBox へ移行した際にゲストOS Windows10 で発生する共有プロファイルエラーの対処法

Parallels Desktop から VirtualBox へ移行しました。 ゲストOSのWindows10にログインするとエラーが発生しましたので、その対策を残しておきます。 有料の Paral …

freeDOS で nvflash を実行すると「This program cannot be run in DOS mode.」と表示される

FreeDOS で nvflash を実行したらエラーが発生しました。

『Rubyによるクローラー開発技法』を読んで DeNA ショッピングのタイムセールを自動設定してみる

はじめに 『Rubyによるクローラー開発技法』でお勉強中です。 憧れのスクレイピングを習得したくて、この本を購入しました。 試しに作ったツールが、DeNAショッピングのタイムセールを自動設定するツール …

ws-pc-side-top

ws-pc-side-btm