用python爬取热门菜谱清单

系统 1348 0

import requests

引用requests库

from bs4 import BeautifulSoup

引用BeautifulSoup库

res_foods = requests.get(‘http://www.xiachufang.com/explore/’)

获取数据

bs_foods = BeautifulSoup(res_foods.text,‘html.parser’)

解析数据

tag_name = bs_foods.find_all(‘p’,class_=‘name’)

查找包含菜名和URL的

标签

tag_ingredients = bs_foods.find_all(‘p’,class_=‘ing ellipsis’)

查找包含食材的

标签

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]切片和之前不同,是因为此处使用的是
              

标签,而之前是 list_all.append(list_food) # 将信息添加进list_all

print(list_all)

打印

以下是另外一种解法

list_foods = bs_foods.find_all(‘div’,class_=‘info pure-u’)

查找最小父级标签

list_all = []

创建一个空列表,用于存储信息

for food in list_foods:

            
              tag_a = food.find('a')
# 提取第0个父级标签中的
              
                标签
name = tag_a.text[17:-13]
# 菜名,使用[17:-13]切掉了多余的信息
URL = 'http://www.xiachufang.com'+tag_a['href']
# 获取URL
tag_p = food.find('p',class_='ing ellipsis')
# 提取第0个父级标签中的
                

标签 ingredients = tag_p.text[1:-1] # 食材,使用[1:-1]切掉了多余的信息 list_all.append([name,URL,ingredients]) # 将菜名、URL、食材,封装为列表,添加进list_all

print(list_all)

打印


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论