LoginSignup
8
7

More than 5 years have passed since last update.

Pythonでシェフの気まぐれサラダ

Posted at

はじめに

シェフの気まぐれサラダを食べたくなったので作ってみた。
といっても凄いことは出来ないので、楽天レシピのAPIを叩いて上位ランキングに上がっているサラダのレシピを入手するだけです。
サラダを作ってくれる訳ではありません。

やること

APIを叩くためにrequestsライブラリをインストールします。

$pip install requests

楽天APIに登録して、諸々を入手します。
後は楽天レシピAPIに入出力の形式が書かれているのでそれに従ってAPIを叩きます。

ソースコード

以下にソースコードを載せます。

shef.py
#-*- coding:utf-8 -*-

import requests
import csv
import sys,codecs
import re,pprint
import random

sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

def pp(obj):
    pp = pprint.PrettyPrinter(indent=4,width=160)
    str = pp.pformat(obj)
    return re.sub(r"\\u([0-9a-f]{4})", lambda x: unichr(int("0x"+x.group(1), 16)), str) 

category_list={"ポテト":"18-415","春雨":"18-416","大根":"18-417","コールスロー":"18-418","かぼちゃ":"18-419","ごぼう":"18-420","マカロニ":"18-421","シーザー":"18-187","コブ":"18-423","タラモ":"18-424","スパゲティ":"18-189","ホットサラダ":"18-190","トマト":"18-184-943"}


gen_input = raw_input("Input Key Words >> ")

if category_list.has_key(gen_input):
    print(pp(u"かしこまりました。"))
    categoryid = category_list[gen_input]
elif gen_input == "お任せ" or gen_input == "おまかせ":
    print(pp(u"おまかせですね、かしこまりました。"))
    categoryid = random.choice(category_list.values())
else:
    print(pp(u"取り扱っておりません。"))
    exit(1)

url = "https://app.rakuten.co.jp/services/api/Recipe/CategoryRanking/20121121?"

st_load= {
        "categoryId":categoryid,
        "applicationId":"アプリケーションID",
       }
r = requests.get(url,params = st_load)

res = r.json()

recipe = res["result"][random.randint(0,len(res["result"])-1)]

print(recipe["recipeTitle"])
print(recipe["recipeUrl"])

実行するとレシピのタイトルとURLを表示してくれます。
後はサラダを自分で作るだけです。

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7