数据获取豆果美食网的数据爬取比较简单,本次爬取的数据范围为川菜、粤菜、湘菜等八个中国菜系,包含菜谱名、链接、用料、评分、图片等字段 。
文章插图
豆果美食网
限于篇幅,仅给出核心代码 。
1# 主函数 2def main(x): 3 url = 'https://www.douguo.com/caipu/{}/0/{}'.format(caipu,x*20) 4 print(url) 5 html = get_page(url) 6 parse_page(html,caipu) 7 8if __name__ == '__main__': 9 caipu_list = ['川菜', '湘菜','粤菜','东北菜','鲁菜','浙菜','湖北菜',' *** 菜'] #中国菜系10 start = time.time() # 计时11 for caipu in caipu_list:12 for i in range(22):13 # 爬取多页14 main(x=i)15 time.sleep(random.uniform(1, 2))16 print(caipu,"第" + str(i+1) + "页提取完成")17 end = time.time()18 print('共用时',round((end - start) / 60, 2), '分钟')
数据清洗短短几分钟就爬下了3032个菜谱信息,为了方便可视化分析,还需要对爬取的数据进行简单清洗 。
本文数据清洗主要用到Python的Pandas库 。
导入数据用pd.read *** 导入爬取到的菜谱数据,并添加列名 。预览数据如下:
文章插图
删除重复项爬虫过程中少量菜谱数据被重复抓取,需要用drop_duplicates *** 删除 。
文章插图
缺失值处理通过info *** 发现少量记录含有缺失值,用dropna *** 删除 。
文章插图
评分字段清洗爬取的评分字段含有多余的字符串且为object类型,需要替换多余字符串并转换为数字类型,方便后续计算 。
文章插图
添加用料数字段为方便菜谱用料分析,需要根据用料字段计算出每个菜谱的用料数量 。由于用料字段都是以逗号分隔,计算逗号数即可间接得到 。
文章插图
数据可视化本文数据可视化主要用到pyecharts库,它能轻松实现酷炫的图表效果 。
菜谱评分分布1from pyecharts import options as opts 2from pyecharts.charts import Page, Pie 3cut = lambda x : '4分以下' if x < 4 else ('4.1-4.5分' if x <= 4.5 else('4.6-4.9分' if x <= 4.9 else '5分')) 4df['评分分布'] = df['评分'].map(cut) 5df2 = df.groupby('评分分布')['评分'].count() 6df2 = df2.sort_values(ascending=False) 7df2 = df2.round(2) 8print(df2) 9c = (10 Pie()11 .add(12 "",13 [list(z) for z in zip(df2.index.to_list(),df2.to_list())],14 radius=["20%", "80%"],# 圆环的粗细和大小15 rosetype='area' #玫瑰图16 )17 .set_global_opts(18 title_opts=opts.TitleOpts(title="菜谱评分分布"19 ),20 legend_opts=opts.LegendOpts(21 orient="vertical", pos_top="5%", pos_left="2%" ,textstyle_opts=opts.TextStyleOpts(font_size=14)# 左面比例尺22 ),232425 )26 .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%",font_size=18),27 )28 )29c.render_notebook()
推荐阅读
- 58同城一个神奇的网站,追剧啦一个神奇的网站
- 炮芯解说 pxj
- 如何在海外网站购物,海外代购正品网站
- 土豆菜谱家常菜做法视频 菜谱家常菜做法视频
- 黑金论坛网站是什么,黑金论坛传奇3光通
- 网站死链查询检测方法,网站死链接检测工具
- 团购旅游票怎么买,团购旅游网站大全
- 手机界面设计中15种常用布局,网站界面设计
- 中国石化加油卡充值网站,中国石化加油卡网上办理
- c2c网站的主要利润来源,国内最大c2c网站