ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

每天不知道吃啥?Python来告诉你!生成菜谱,每天吃啥不用愁!

2021-10-23 14:00:20  阅读:274  来源: 互联网

标签:界面 每天 菜谱 Python 生成 ui 词云 csv


导语

      我相信很多人都有这样的一个烦恼,我每天下班回家都会想蛮久今天做啥吃啥,辣椒炒肉,昨天才吃,酸辣土豆丝前天才做!总之每天都在想今天回家吃啥菜,怎么做!如果你问我为什么不点外卖,一是外卖可能不是很干净,吃着不放心,二是外卖很多都太难吃了,特别是我每天早上吃的粉,那粉店都能开的下去,还不如我早上随便拿点骨头汤下个面条吃!实在太难吃了,所以今天来一个它给我出了啥菜单,我们就做啥吧!这样每天都不用去想了,你如果用的上,可以直接分享给你哈,源码在文末!

自己丰衣足食,弄一个菜谱生成器,随机生成 “三菜一汤”,完美解决买菜难的问题~

项目简介

从 “下厨房” 爬取【家常菜】【快手菜】【下饭菜】【汤羹】四类菜品中的最近流行的,保存在 csv 文件,制作一个界面,随机生成三菜一汤的菜谱,菜谱包含菜名,食材,评分,教程链接,并在界面中显示食材词云,用户可重复,可多次生成菜谱:

http://www.xiachufang.com/

图片

结果展示

运行 ui_support.py 文件:

图片

图片

要是不满意,还可以点击【清除】按钮,继续重新生成噢~

知识点

从本项目中,你可以学到以下知识:

1.爬虫的基本流程

2.xpath 提取数据

3.创建,写入,读取 csv

4.pandas 随机选择数据 sample()

5.DateFrame 转为 List

6.ui 生成工具 page 的使用

7.根据生成 ui 代码,添加事件触发逻辑

8.词云制作

项目流程

在项目文件中有一个 read.txt 文件,里面也有说明项目的模块划分。

spider.py 为爬虫文件,爬取我们需要的数据,逻辑为:创建 csv,创建 url 后遍历访问,提取数据,写入 csv。

在获得的 csv 有一个问题,打开看会是乱码,设置为 utf8,gbk 都不能正常在 wps 显示,但用 txt 打开是正常显示,经过测试,在 ui 界面显示也正常,这是因为在食材中有一些表情字符,获得后的 csv 不需要任何处理:

图片

接下来制作 ui 界面,使用了 page 工具来生成界面代码,关于这个工具安装配置参考:

《Python 脚本 GUI 界面生成工具》

小编这里是设计好的,就再简单介绍一下:

图片

从左侧 “Widget Toolbar” 控件栏,选择相应控件到中间窗口即可,对于按钮控件,我们需要添加触发命令,点击 “生成菜单” 就会运行相应逻辑。

选中 “菜单生成” 控件,再选中 “Attribute Editor” 栏的 “Attribute” ,在 “command” 写入触发函数名,“text” "tooltip" 分别为文本显示,提示标签:

图片

设计好后,先保存,小编的保存文件名为 ui,它是保存为 ui.tcl 文件,现在把界面代码也保存:

图片

分别点击 “Save” 保存这两个文件,会保存在与 ui.tcl 的同一目录。

“python GUI” 是界面逻辑,保存后的文件名为 ui.py,不需要动。

“Support Module” 是触发事件代码,我们相应的逻辑就是在这里面添加:

图片

打开 ui_support.py ,找到设置的 “command”,即为函数名:

图片

clean 函数为点击【清除】按钮后,把文本框清除:

图片

creat_menu 函数为点击【生成菜谱】按钮后的逻辑,从 csv 中随机抽取三菜一汤显示在文本框,显示词云在标签栏。

其主要为:读取 csv,DataFrame 转化为 list,合并【三菜一汤】,制作菜单的文本,保存食材词,菜单文本框插入,词云生成,插入词云:

图片

图片

图片

这样所有逻辑都完成了,运行 ui_support.py 即可开始菜谱生成啦~


源码获取

需要此篇文章的完整源代码点这里获取

标签:界面,每天,菜谱,Python,生成,ui,词云,csv
来源: https://blog.csdn.net/weixin_52994140/article/details/120920154

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有