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学习网。
在某信输入什么代码可以看菜谱菜谱数据采用XML方式存储,使用时调用;
2:程序主界面采用tabtable界面 通过切换tab来显示各个界面,分为4个界面Suggestion,推荐界面, colloect界面,getall界面,calcute界面;
3:Suggestion界面设置随便看看按钮和搜索按钮,随便看看按钮随机从数据库中抽取5个数据,读取到listview中显示出来;搜索界面采用模糊查询方式,查询数据;
4:collect界面显示收藏的菜谱数据,并且采用SQLite数据库存储模式,存储到数据库中;
5:getall显示全部数据库数据,并且支持记录上次阅读位置,下次进入程序的时候直接继续上次浏览;
6:calcute显示通过身高计算体重的小工具;
7:全部数据采用listview来显示,通过自定义的adapter来适配数据;
8:所有listview都支持点击进去详细菜谱查看;
文章知识点与官方知识档案匹配
小程序技能树首页概览
3984 人正在系统学习中
打开CSDN APP,看更多技术内容
Python-MLOps-Cookbook:这是容器化烧瓶应用程序的一个示例
集装箱烧瓶机学习这是容器化烧瓶应用程序的一个示例回购资产Makefile : requirements.txt : cli.py : app.py : mlib.py :模型处理库htwtmlb.csv1 :用于输入缩放model.joblib : Dockerfile : Baseball_...
热门推荐 小程序操作Mysql数据库
小程序的诞生,是移动应用的革命。下面是腾讯云服务器端配置:·Node.js 8.2.1·MySQL 5.7.18·Nginx 1.10.2新开发环境是 wafer2,这种架构使后台开发更方便。数据库用Mysq...
继续访问
微信小程序实战之菜谱小程序
最近突发奇想,想要自己搞个小程序玩儿玩儿,但是鉴于自己是搞后端服务器出身,对于偏前端的微信小程序开发实在是一知半解,尤其是对于css类样式相关,更是无从下手,于是乎,只能从晚上找了一个demo,对其进行了一番改造,然后进行上线,也算是基本完整的走了一遍小程序开发的简单流程,本篇文章就是对这次实践的简单介绍。 先放个二维码压压惊~ 原文地址:http://www.darylliu.cn/arch...
继续访问
菜鸟的 PHP 学习之路(三):一个简单的连接数据库并查询的小程序(1)
上一篇文章已经写了一个简单的 Hello World 程序了,好吧,其实那不是我的第一个 PHP 程序,我的第一个程序是简单地连接数据库的(我不会介绍 PHP 语法的,至少不会专门去介绍,免得误人子弟,要看语法介绍的自行上 W3CSchool 这个网站),话不多说,直接开始吧! 既然要连接数据库,那么肯定要有数据库和数据库表啦,Appserv 已经集成了 MySQL 这款开源的数据库了,我们可以
继续访问
菜谱小程序_云应用程序食谱
这些年来,模式在软件开发,体系结构和操作中的价值已得到广泛记录。 例如,TOGAF中的 The Open Group的Architecture模式讨论,以及Kyle Brown在运行时模式上下文中的所有级别的Patterns讨论。 在本文中,您将学习一种称为食谱的新型模式。 您可以使用配方来评估候选应用程序以迁移到云或在云中实施。 这些应用程序可以专门在云中或在混合模型中运行,其中某些组件...
继续访问
使用python获取菜谱图文
今天学习了python爬虫,刚好老婆想下载一些菜谱图片,就改了改网上的代码,试着抓了一下,把菜谱的步骤打印出来,图片保存到桌面上。 # -*- conding:utf-8 -*- import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() retu
继续访问
MS3-CookBook:这是一本在线食谱
要运行后端Python文件,请输入python3 app.py ,如果您的Python文件当然名为app.py 应该会出现一个蓝色按钮,以单击: “公开” , 应该出现另一个蓝色按钮,以单击:打开浏览器。 在Gitpod中,默认情况下,您具有...
cookbook:Cookbook是一个社区驱动的食谱数据库,它使用户能够注册,提交食谱,搜索社区食谱以及搜索更大的第三方数据库
描述Cookbook是一个社区驱动的食谱数据库,它使用户能够注册,提交食谱,搜索社区食谱以及搜索更大的第三方数据库。 食谱跳过了不必要的部分,并提供了直接的食谱,包括名称、照片、成分和说明。 没有填充物,不需要...
infinite-cookbook:一个分享食谱的新项目!
无限食谱一个分享食谱的新项目!
微信小程序入门Cookbook-1(不定期更新)
微信小程序开发,微信小程序开发入门,快速开始微信小程序开发,微信小程序入门指引
继续访问
ntu-cookbook:一个开源项目,汇集了各种烹饪食谱,方法和技术
是否在寻找可以存放各种学生食谱的地方? 好吧,你已经找到了! 这是一个开源项目,由我们的成员之一。 该项目的灵感来自项目。 该项目和回购的目的是汇编... 创建一个以您的食谱命名的新分支( git checkout -b [br
cookbook:一个使用Ruby MVC表示食谱的简单应用
cookbook:一个使用Ruby MVC表示食谱的简单应用
grunt_cookbook:这是一本食谱,可用于从 Chef 中安装和运行 grunt 任务
这是一本食谱,可用于安装 grunt 并从 Chef 中运行 grunt 任务。 如果您的主厨节点已经安装了 nodejs 和 npm 包括 grunt_cookbook:install_grunt_cli 配方并在 Gruntfile 和 package.json 文件所在的目录中执行 ...
cookbook:这是一个谷歌浏览器扩展,它试图将美国单位转换为欧洲单位
食谱翻译器 This is still in alpha. At the moment it translates all websites automatically. In future releases I will include a whitelist for websites so we won't break functionality on websites. 这是...
thecookbook:免费、开源的食谱跟踪应用程序
免费的开源食谱跟踪应用程序。 在查看它的实际效果 特征 快速创建自己的食谱 成分和说明的简化格式(降价) 标记食谱以进行快速分类 “叉”一个你想改变的食谱 上传熟食谱的照片 开发商 我总是很高兴收到拉取请求,...
最新发布 wordpress-cookbook:只是另一本给厨师的 wordpress 食谱。 这本食谱支持多个 WordPress 安装
只是另一本 WordPress 食谱。 这本食谱支持多个 WordPress 安装。 要求 食谱 易于 阿帕奇2 php mysql 数据库 平台 Ubuntu 12.04 Ubuntu 14.04(也许) 属性 wordpress::默认 钥匙 类型 描述 默认 [:wordpress][:...
axoniq-cookbook:食谱食谱如何准备Axon应用程序
食谱模板在/recipes是一个名为0_asciidoc_axon_cookbook_template.md的文件,其中包含每个配方的模板。 如果您更改模板中的某些内容,请确保每个配方仍在相应地起作用。命名请命名食谱,包括问题的编号。 因此,例如...
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
主要介绍了Python cookbook(数据结构与算法)根据字段将记录分组操作,结合实例形式分析了itertools.groupby()函数针对字典进行分组操作的相关实现技巧,需要的朋友可以参考下.
python-click-cli-cookbook:一个包含食谱食谱的仓库,用于使用Python构建命令行工具Click
Python单击CLI食谱 一个包含食谱食谱的仓库,用于使用Python构建命令行工具Clic
1、python食谱组合的实验目的是了解 Python 的基本编程环境,熟悉其主要组成部分和使用。2、熟悉 turtle 库语法元素,了解其绘图坐标体系、画笔控制函数和运动命令函数。通过程序实例,初步掌握 Python 程序设计的基本概念、编程规则和开发过程。
3、掌握 Python 的基本数据类型的概念和使用;运用 Python 的标准数学库进行数值计算;掌握字符串类型的格式化操作方法和应用。