python中怎么用列表展开式来挑选出素食主义者能吃的菜

Python09

python中怎么用列表展开式来挑选出素食主义者能吃的菜,第1张

如何用python获取实用的菜谱?

1、过程分析

(1)进入网页——下厨房,右键->检查->Network->All,刷新网页点击第0个请求,再点击response。按下ctrl+f查找任意一个菜名,如能在response中找到,则数据放在html里。则可返回观察网页源代码,点击Elements。

注:如果在response中找不到数据,则数据应在XHR里,那么就要使用另一种方式抓取数据,本文只介绍在html里抓取数据

(2)在Elements找到我们需要抓取的数据(菜名、材料、链接)。可以右击菜名,快速查看。你可以在标签上找到菜名和链接。

2、实例

(1)模块导入

#没有模块的请先下载相关模块,可以在终端输入 **pip install 模块名** 下载,或者在pycharm软件中点击

File->Setting->project->python interpreter 里下载。

#使用request来获取数据,使用BeautifulSoup来解析数据,使用csv或者openpyxl来存储数据。

import requests,csv,openpyxl

from bs4 import BeautifulSoup

(2)获取解析数据

#获取所有目标url,本周最受欢迎菜谱里一共有20页,观察网址我们发现,只需要通过改变链接末尾的page=的数值即可实现翻页。

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0Win64x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36'} #添加request headers,伪装成浏览器登录,若不添加则会被浏览器认出来是爬虫,而有的浏览器会限制爬虫,比如下厨房。

foods_list = [] #存储食物数据

for i in range(1,21):

url = 'https://www.xiachufang.com/explore/?page='+str(i) #通过改变i的数值达到爬取所有网页的目的

res = requests.get(url,headers=headers) #获取数据

soup = BeautifulSoup(res.text,'html.parser') #解析数据

inf = soup.find_all('div',class_="recipe recipe-215-horizontal pure-g image-link display-block") #找到最小父级共同标签

for food in inf:

food_name = food.find('img')['alt'] #菜名

food_ingredients = food.find('p',class_='ing ellipsis').text #食材

food_href = 'https://www.xiachufang.com/'+ food.find('a')['href'] #链接

foods_list.append([food_name,food_href,food_ingredients]) #把获取的数据添加到列表

print('菜名:\t%s\n用料:\t%s链接:\t%s\n'%(food_name,food_ingredients,food_href)) #打印

(3)数据存储

存储为xlsx格式

#使用xlsx存储,需要导入openxlsx模块

wb = openpyxl.Workbook() #创建工作薄

sheet = wb.active #获取工作薄活动表

sheet.title = 'menu' #命名

headers = ['菜品','链接','用料'] #表头

sheet.append(headers)

for food in foods_list:

sheet.append(food) #添加数据

wb.save('xiachufang.xlsx') #保存

以上就是用python获取实用菜谱的方法,希望能对大家有所帮助,更多知识尽在python学习网。

Python编程语言的持续火爆,在最新Tiobe编程语言排行榜中位列第五,热度持续增加,尤其是在 AI 和 大数据时代,Python是 AI 和大数据时代的第一开发语言。这已经是一个不争的事实了,唯一的悬念就是谁能坐上第二把交椅了。Python是胶水语言,应用及其广泛。在web应用领域,国内知名互联公司:有号称文艺青年的圣地--豆瓣评分,曾经主打高端问答知识社区的--知乎,唯有爱和美食不可辜负的--下厨房……

谈到在web应用领域,除了Python的语法,Django是Python后台一个最重要的框架。今天千峰教育的讲师和大家简单的聊一下Django框架。

方法/步骤

问题1:什么是软件框架? 举个简单的例子,对于一个公司来说,公司中有各个职能部门,每个部门各司其职,通过部门之间的配合来完成工作,这些部门就形成了一个公司的组织架构。从某种意义上来说,公司就是一种框架。那么对应到软件设计上来说,软件框架是由其中的各个模块组成的,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发。 一个公司,它是针对某一市场而成立的,而软件框架的设计,也是针对某一类软件问题而设计的,其目的主要是提高软件开发效率。

问题2:Django的简介和设计思想? Django是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发原则。

问题3:MVC简介 MVC的全拼为Model-View-Controller,最早在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。 现MVC是一种架构设计模式,是一种设计理念。是为了达到分层设计的目的,从而使代码解耦,便于维护和代码的复用。MVC是3个单词的缩写,全称:Model-View-Controller(模型-视图-控制器)。MVC就是提供一种规则,让你把相同类型的代码放在一起,这样就形成了层次,从而达到分层解耦、复用、便于测试和维护的目的。

当前主流的开发语言如Java、PHP、Python中都有MVC框架。 Web MVC各部分的功能 M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。 V全拼为View,用于封装结果,生成页面展示的html内容。 C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果 问题4:Django框架遵循MVC设计,并且有一个专有名词:MVT MVT各部分的功能: M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。 V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。 T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。