Target:菜名、所需材料、和菜名所对应的详情页URL。
思路一:我们先去爬取所有的最小父级标签

,然后针对每一个父级标签,想办法提取里面的菜名、URL、食材。
思路二:我们分别提取所有的菜名、所有的URL、所有的食材。然后让菜名、URL、食材给一一对应起来(这并不复杂,第0个菜名,对应第0个URL,对应第0组食材,按顺序走即可)。

思路一:

import requests
# 引用requests库
from bs4 import BeautifulSoup
# 引用BeautifulSoup库url = 'http://www.xiachufang.com/explore/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
res_foods = requests.get(url,headers=headers)
# 获取数据
bs_foods = BeautifulSoup(res_foods.text,'html.parser')
# 解析数据
list_foods = bs_foods.find_all('div',class_='info pure-u')
# 查找最小父级标签list_all = []
# 创建一个空列表,用于存储信息for food in list_foods:tag_a = food.find('a')# 提取第0个父级标签中的<a>标签name = tag_a.text[17:-13]# 菜名,使用[17:-13]切掉了多余的信息URL = 'http://www.xiachufang.com'+tag_a['href']# 获取URLtag_p = food.find('p',class_='ing ellipsis')# 提取第0个父级标签中的<p>标签ingredients = tag_p.text[1:-1]# 食材,使用[1:-1]切掉了多余的信息list_all.append([name,URL,ingredients])# 将菜名、URL、食材,封装为列表,添加进list_allprint(list_all)
# 打印

思路二:

import requests
# 引用requests库
from bs4 import BeautifulSoup
# 引用BeautifulSoup库url = 'http://www.xiachufang.com/explore/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
res_foods = requests.get(url,headers=headers)
# 获取数据
bs_foods = BeautifulSoup(res_foods.text,'html.parser')
# 解析数据tag_name = bs_foods.find_all('p',class_='name')
# 查找包含菜名和URL的<p>标签
tag_ingredients = bs_foods.find_all('p',class_='ing ellipsis')
# 查找包含食材的<p>标签
list_all = []
# 创建一个空列表,用于存储信息for x in range(len(tag_name)):
# 启动一个循环,次数等于菜名的数量list_food = [tag_name[x].text[18:-14],tag_name[x].find('a')['href'],tag_ingredients[x].text[1:-1]]# 提取信息,封装为列表。注意此处[18:-14]切片和之前不同,是因为此处使用的是<p>标签,而之前是<a>list_all.append(list_food)# 将信息添加进list_all
print(list_all)
# 打印

**【注意】**用python自己的编译器打印会出错:UnicodeEncodeError: ‘UCS-2’ codec can’t encode characters in position 1273-1273: Non-BMP character not supported in Tk
**【解决方法】**用pycharm或spyder运行

输出结果如下:

[['一口就爱上的麻酱宽粉,真的会上瘾哦!', 'http://www.xiachufang.com/recipe/104738875/', '宽粉、蒜末、辣椒粉、小米辣、葱花、芝麻、生抽、醋、蚝油、芝麻酱、食盐、糖、香菜'], ['家常焖豆腐', 'http://www.xiachufang.com/recipe/104747405/', '嫩豆腐、鸡蛋、青椒辣椒、葱花、蒜米、洋葱、生抽、蚝油、白糖、盐油、鸡精、淀粉'], ['外酥里糯,学会再也不用排队了❗️一学就会‼️', 'http://www.xiachufang.com/recipe/104626550/', '糯米粉、糖、鸡蛋、纯牛奶、玉米油'], ['好吃到爆的奶黄酥', 'http://www.xiachufang.com/recipe/104734616/', '奶黄馅:、蛋黄、糖、牛奶、食用油、普通面粉、油皮:、普通面粉、白砂糖、食用油、水、油酥:、普通面粉、食用油、装饰:、蛋黄、芝麻'], ['秒杀路边摊‼️巨好吃的爆炒花甲‼️辣炒花蛤', 'http://www.xiachufang.com/recipe/104739872/', '花甲/花蛤、小葱 、姜、蒜、小米辣'], ['好吃到舔手指的孜然火腿年糕', 'http://www.xiachufang.com/recipe/104742122/', '年糕、火腿、熟白芝麻、辣椒粉、孜然粉、生抽、白糖'], ['巨好吃㊙️酸辣凉拌面❗️十分钟搞定,简单快手❗️', 'http://www.xiachufang.com/recipe/104347814/', '面条、葱花、蒜末、黄瓜、香菜末、熟花生米'], ['烤牛奶(超详细)', 'http://www.xiachufang.com/recipe/104726529/', '牛奶、蛋黄、玉米淀粉、芝士片、糖、鸡蛋、白砂糖'], ['蔓越莓小布丁', 'http://www.xiachufang.com/recipe/104734322/', '牛奶、淡奶油、白砂糖、奶粉、玉米淀粉、蔓越莓干'], ['可以出去摆摊的酸辣无骨鸡爪', 'http://www.xiachufang.com/recipe/104712985/', '鸡爪'], ['低卡好吃不胖的番茄虾仁意面‼️茄汁浓郁巨美味', 'http://www.xiachufang.com/recipe/104738616/', '意大利面、虾仁、西红柿、洋葱'], ['祛湿(四神汤)', 'http://www.xiachufang.com/recipe/104744154/', '芡实(薏米)、茯苓、莲子、山药干、鸡(猪骨)、红枣'], ['比辣皮好吃百倍的孜然豆腐皮,麻辣过瘾!', 'http://www.xiachufang.com/recipe/104735326/', '豆腐皮、花椒粉、孜然粉、辣椒面、白芝麻、盐、白糖、生抽、蚝油'], ['不放一滴水的红烧肉												

Python爬取【下厨房】网页菜名、所需材料和菜名所对应详情页的的URL实例相关推荐

  1. 爬虫项目实操二、爬取“下厨房”网站的菜名、所需材料、和菜名所对应的详情页URL

    项目-爬取"下厨房"网站的菜名.所需材料.和菜名所对应的详情页URL. 它有一个固定栏目,叫做"本周最受欢迎",收集了当周最招人喜欢的菜谱.地址如下: http ...

  2. PY爬虫 | 爬取下厨房的本周最受欢迎

    # CY3761 | 2021-10-27 20:03# 爬取下厨房的本周最受欢迎-列表数据 import base64 import os.path from urllib import reque ...

  3. python周末吃什么_python爬虫第10关项目周末吃什么(每周五自动爬取下厨房本周最受欢迎的菜谱)...

    目标:我们曾在第3关爬取了下厨房网站中的"本周最受欢迎菜谱",现在,我们完善这个程序,让程序在每个周五爬取数据,并把菜谱发送到我们的邮箱. import requests impo ...

  4. 爬虫 python 爬取php的网页,带有post参数的网页如何爬取

    记录一下自己的爬虫踩过的坑,上一次倒是写了一些,但是写得不够清楚,这次,写清楚爬取的过程. 这个网站是某省的志愿服务网. 就是它了. 我向爬取一些组织开展过的活动,比如这一个组织, 这个组织的页面找打 ...

  5. python爬取js动态网页_Python 从零开始爬虫(八)——动态爬取解决方案 之 selenium

    selenium--自动化测试工具,专门为Web应用程序编写的一个验收测试工具,测试其兼容性,功能什么的.然而让虫师们垂涎的并不是以上的种种,而是其通过驱动浏览器获得的解析JavaScript的能力. ...

  6. 用python爬取东方财富网网页信息_爬取东方财富网数据的网页分析

    自学Python已有3个月之多,浏览无数大神的佳作,收获颇丰.当初自学python就是为了学习爬虫,爬取网站上好看妹子的图片--[流口水][流口水] 言归正传,近期学习量化交易知识,发现东方财富网(e ...

  7. 爬取下厨房网站菜名与食材

    方法一: import requests# 引用requests库from bs4 import BeautifulSoup# 引用BeautifulSoup库 res_foods = request ...

  8. python爬取js动态网页_Python 爬取网页中JavaScript动态添加的内容(一)

    当我们进行网页爬虫时,我们会利用一定的规则从返回的 HTML 数据中提取出有效的信息.但是如果网页中含有 JavaScript 代码,我们必须经过渲染处理才能获得原始数据.此时,如果我们仍采用常规方法 ...

  9. python爬取B站网页排行榜数据(进阶版)

    我们已经在基础版本中获取了网站的排行,更新状态,名称,播放量,弹幕量和综合评分. 如下图所示,没看过基础版的建议先去基础版把前面的代码看完,这边不会再讲. 我们这次的目标是获取B站动漫的点赞量,投币数 ...

最新文章

  1. Go中的Map实现机制
  2. sklearn 随机森林_初识随机森林及sklearn实现
  3. java httpclient 重定向_如何在HttpClient中自动重定向(java,apache)
  4. Jenkins时区设置为北京时间
  5. careercup-数学与概率 7.7
  6. python二维分布图怎么画_python3怎样画二维点图
  7. ESP8266串口WiFi模块基本使用方法和配置教程
  8. Vue - 滑块拖动拼图验证(滑块验证安全检测)
  9. suse下oracle静默安装,SUSE Linux Enterprise 11SP1静默安装Oracle 11gR2说明文档.doc
  10. 饿了么官宣合作抖音后,美团的失意是什么?
  11. 计算机二级程序设计提交,程序设计方法与风格(计算机二级复习指导)
  12. 干货!我开发 Android 是如何界面设计的
  13. javascript高级编程学习
  14. 计算机操作人员眼睛离屏幕多远,最新中小学生安全知识竞赛问答
  15. 三菱FX系列 DADD和DSUB指令使用
  16. MySQL版 emp 数据库
  17. python期末大作业-图形化爬虫
  18. 使用python selenium爬取淘宝商品信息 自动登录淘宝和爬取某一宝贝的主图,属性图和详情图等等
  19. ITGZ的JMS583硬盘盒通电次数飙升
  20. windows10权限被改为System Managed Account Group的处理方法

热门文章

  1. 《城市画报》封面文章访问陈绮贞[转自城画]
  2. Metasploit攻击win7实例——利用MS11_003 IE漏洞攻击win7主机
  3. linux dhcp配置实验报告,Linux DHCP服务器配置实验报告.doc
  4. WiFi共享精灵陪你看《爸爸去哪儿》
  5. 学校人力资源管理系统需求分析
  6. CSS——获得焦点元素
  7. WPF界面设计技巧(6)—玩玩数字墨水手绘涂鸦
  8. FLOPS与GOPS:各平台及神经网络算力算量调研
  9. android应用去掉状态栏_android去掉状态栏
  10. Linux文件夹权限