我用Python爬取美食网站3032个菜谱并分析,真香!

在这里插入图片描述
这是巨变的中国,人和食物,比任何时候走的更快。近日,J哥为了寻味中国,奔走于某五线城市的大街小巷,结果除了累,啥也没寻到。

于是,J哥默默打开了各大美食网站,如豆果美食、下厨房、美食天下等。经过甄选,最终爬取了豆果网最新发布的中国菜系共3032个菜谱,然后清洗数据并做可视化分析,试图走上美食博主的康庄大道。

数据获取

豆果美食网的数据爬取比较简单,如果您对爬虫感兴趣,可查看J哥往期原创文章「实战|手把手教你用Python爬虫(附详细源码)」,思路一致。
在这里插入图片描述

本文爬取的数据范围为川菜、粤菜、湘菜等八个中国菜系,包含菜谱名、链接、用料、评分、图片等字段。限于篇幅,仅给出核心代码。

 # 主函数
def main(x):
    url = 'https://www.douguo.com/caipu/{}/0/{}'.format(caipu,x*20)
    print(url)
    html = get_page(url)
    parse_page(html,caipu)


if __name__ == '__main__':
    caipu_list = ['川菜', '湘菜','粤菜','东北菜','鲁菜','浙菜','湖北菜','清真菜'] #中国菜系
    start = time.time()  # 计时
    for caipu in caipu_list:
        for i in range(22):
            # 爬取多页
            main(x=i)
            time.sleep(random.uniform(1, 2))
            print(caipu,"第" + str(i+1) + "页提取完成")
    end = time.time()
    print('共用时',round((end - start) / 60, 2), '分钟')

数据清洗

短短几分钟就爬下了3032个菜谱信息,为了方便可视化分析,还需要对爬取的数据进行简单清洗。

本文数据清洗主要用到Python的Pandas库,如果您对Pandas感兴趣,可查看J哥往期原创专辑「Pandas基础系列」,共五篇。

导入数据

用pd.read方法导入爬取到的菜谱数据,并添加列名。

import pandas as pd
import numpy as np
df = pd.read_csv('/Users/spider_cook/cai.csv'
                 ,names = ['菜谱','菜谱链接', '用料', '评分', '用户','图片','菜系'])
df.head()

删除重复项

爬虫过程中少量菜谱数据被重复抓取,需要用drop_duplicates方法删除。

df = df.drop_duplicates() 

缺失值处理

通过info方法发现少量记录含有缺失值,用dropna方法删除。

df.info()
df = df.dropna(axis=
  • 8
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值