如何用python获取实用的菜谱?
- 更新时间:2021-07-01 08:56:15
- 编辑:厉嘉致
为找教程的网友们整理了相关的编程文章,网友唐宏义根据主题投稿了本篇教程内容,涉及到数据、链接、菜名、使用、获取相关内容,已被875网友关注,内容中涉及的知识点可以在下方直接下载获取。
参考资料
- 解惑大数据 PDF 电子书 / 39.79MB / 丁圣勇 樊勇兵 闵世武 推荐度:
- 数据挖掘:实用机器学习工具与技术 PDF 电子书 / 138.4 MB / Ian H.Witten 推荐度:
- 数据库系统:原理、设计与编程 PDF 电子书 / 15 MB / 陆鑫 张凤荔 陈安龙 推荐度:
- 数据库应用技术 SQL Server 2005篇(第二版) 课后答案 / 944 KB / 徐守祥 林伟炜 徐丽 推荐度:
- 块数据 PDF 电子书 / 53.9 MB / 大数据战略重点实 推荐度:
正文内容
码农之家最近发表了一篇名为《如何用python获取实用的菜谱?》的py文章,感觉很有用处,增加了更多知识点内容,为了方便大家的阅读。
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.0; Win64; x64) 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如何处理大数据?3个技巧效率提升攻略(推荐)
这篇文章主要介绍了Python如何处理大数据?3个技巧效率提升攻略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习
发布时间:2019-06-03
-
MySQL数据库的shell脚本自动备份
这篇文章主要介绍了MySQL数据库的shell脚本自动备份的相关资料,网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行。我们需要一种安全的,每天自动备份的方法需要的朋友可以参
发布时间:2019-06-05