前言
前几天小编在家当主厨,从买菜到端上桌的全部流程都有小编操办,想着就弄一些简单一些的菜,就没有多想,可当小编去到超市站在一堆菜的面前却不知所措了,看着花花绿绿,五颜六色的菜不知道买什么,做什么菜。
于是小编突发奇想,自己丰衣足食,弄一个菜谱生成器,随机生成 “三菜一汤”,完美解决买菜难的问题~
项目简介
从 “下厨房” 爬取【家常菜】【快手菜】【下饭菜】【汤羹】四类菜品中的最近流行的,保存在 csv 文件,制作一个界面,随机生成三菜一汤的菜谱,菜谱包含菜名,食材,评分,教程链接,并在界面中显示食材词云,用户可重复,可多次生成菜谱:
结果展示
运行 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 工具来生成界面代码,关于这个工具安装配置参考:
》
小编这里是设计好的,就再简单介绍一下:
从左侧 “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”,回复关键词 “三菜一汤” 获取
final
听说点“在看”的,扫了下方二维码的人都变得更好看咯~
交流群已建立,找到我,备注【交流】即可加入其中,成为我们其中的一员~
-END-