为啥这么多人早餐都是直接选择肯德基?又贵又不咋好吃。用Python来爬一下看看!

00 前言

肯德基发展了那么多年,他们的食物也随之发生了很多变化,记得以前刚出早餐的时候,也就几个品种,有点单一,然而现在的花样是越来越多,套餐五花八门,各种搭配。

木下爬取了肯德基早餐的菜单,来看看 KFC 的早餐热量,碳水化合物,脂肪,蛋白质是什么水平的,搭配出属于我们自己的套餐吧~~~

01 爬虫

我们先打开肯德基宅急送的网上订餐首页

https://www.4008823823.com.cn/kfcios/Html/Croissant.html

可以看到各种我们想要的信息

图片

我们要爬取的信息有餐名,内容,价格,图片链接,我们查看源代码,发现网页是静态的:

图片

我们可以使用正则表达式直接进行提取我们需要的数据:

def get_info(response):
    # 提取早餐信息
    # 餐名
    titles = re.findall('alt="(.*?)"',response.text,re.S)
    # 食物内容
    foods = re.findall('descCn="(.*?)"',response.text,re.S)
    # 价格
    prices = re.findall('price="(.*?)"',response.text,re.S)
    # 图片链接
    img_urls = re.findall('<img src="(.*?)"',response.text,re.S)
    infos = zip(titles,foods,prices,img_urls)
    return list(infos)

提取出我们的数据后,我们选择使用 csv 进行保存,保存结果如下:

图片

完整爬虫代码,见文末获取。

02 早餐词云

图片

我们来看一看 KFC 的早餐主要都有什么内容:

#词云生成
mask = imageio.imread("foodName.jpg")
w = wordcloud.WordCloud(background_color = 'white',
                        width = 1000,height = 700,
                        font_path = 'msyh.ttc',
                        mask = mask)
w.generate(txt)
w.to_file('wordcloud.png')

图片

我们可以看到主食主要有汉堡,鸡肉,皮蛋瘦肉粥等;小吃有鸡蛋,红薯饼,芝士等;饮品类的主要就是咖啡豆浆等;而且还分西式与法式的种类。

让我们从主食,小吃,饮品的角度看一看它们的营养吧。

关于热量,脂肪,碳水化合物,蛋白质小编是从一个食物热量的网站查询的,搜了搜肯德基的食品,虽说不能完全对应每件食品,但同种类食品的数值相差不大,含量(每100克)。

http://www.boohee.com

hamburger = {
    '热量' : 250,
    '脂肪' : 10,
    '碳水化合物' : 20,
    '蛋白质' : 10
}

我们查询并手动给食品赋值,这样在后续文章中就可以统计营养分布了。

03 主食营养分布

图片

KFC 主食主要可以分为汉堡,饭团,鸡肉,粥这几大类,我们来看一看它们的营养数值分布情况吧:

x = ['汉堡','饭团','粥','鸡肉']
y1 = [250,200,50,255]
y2 = [10,11,1.5,15]
y3 = [20,21,8,10]
y4 = [10,6,2.5,21]
c = Bar()
c.add_xaxis(x)
c.add_yaxis("热量", y1, stack="stack1")
c.add_yaxis("脂肪", y2, stack="stack1")
c.add_yaxis("碳水化合物", y3, stack="stack1")
c.add_yaxis("蛋白质", y4, stack="stack1")
c.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
c.set_global_opts(title_opts=opts.TitleOpts(title="主食营养分布"))
#c.render_notebook()
c.render('主食营养分布.html')

图片

我们看到 ,KFC 的早餐的热量都还是挺高的(每 100g),尤其是汉堡,饭团,鸡肉类的主食,要是天气较冷的话,选择这三类作为主食,或许是一个不错的选择呢。

04 小吃营养分布

图片

从页面上看出的提供了这么几种小吃,大可分为茶叶蛋,油条,薯饼,蛋挞这几类,太阳蛋跟蛋挞差不多暂且算成蛋挞。

那让我们来看看小吃的营养分布是如何的吧(每 100g 的含量):

图片

看起来是油条热量最高呢,小编觉得茶叶蛋不错,也挺好吃的,热量这些也相对较低,蛋白质的占比相对其他的也是最高的。

当然了,正在减肥,油条建议少吃。

05 饮品营养分布

图片

当然了,早餐来一杯腾腾的咖啡或豆浆是多么的惬意啊,KFC 早餐也提供了咖啡豆浆供我们选择:

from pyecharts import options as opts
from pyecharts.charts import Pie

c = Pie()
c.add(
        "",
        [list(z) for z in zip(["热量", "脂肪",'碳水化合物','蛋白质'],
                              [31,2,1.5, 3])],
        center=["20%", "50%"],
        radius=[60, 80],
    )
c.add(
        "",
        [list(z) for z in zip(["热量", "脂肪",'碳水化合物','蛋白质'],
                              [100,4,12, 4])],
        center=["55%", "50%"],
        radius=[60, 80],
    )
c.set_global_opts(
        title_opts=opts.TitleOpts(title="豆浆(左)咖啡(右)"),
        legend_opts=opts.LegendOpts(
            type_="scroll", pos_top="200%", pos_left="80%", orient="vertical"
        ),
    )
c.render('豆浆咖啡.html')

图片

在热量上都相差不多,但蛋白质的话,豆浆所含的蛋白质占比就相对较多,如果午饭时间吃的较晚的话,可以选择豆浆,蛋白质带来的饥饿感会相对较少。

06 小结

当然我们不太好找到一一对应每样食物的的营养,就只能找类似的,木下对比后,发现相差不大,就可以等价替换咯,所以数据有一定的误差,要是有更好的参考可以告诉小编噢。

需要完整项目代码的点这里即可获取

Guess you like

Origin blog.csdn.net/weixin_43881394/article/details/120951182