实战|*敏*感*词*教你用Python爬虫(附详细源码)

优采云 发布时间: 2021-05-27 02:20

  

实战|*敏*感*词*教你用Python爬虫(附详细源码)

  

  这是一个发生了巨大变化的中国,人们和食品的运输比以往任何时候都快。最近,为了寻找中国,J弟兄穿过了一个五线城市的街道,但除了疲惫之外什么都没发现。

  因此,J先生默默地打开了主要美食网站,例如豆类和水果美食,去了厨房,美食界等等。选择之后,我们最终抓取了发布的总共3,032种中国菜食谱,然后清理了数据并进行了可视化分析,试图走上美食博主的广阔道路。

  数据采集

  斗国食品网的数据抓取相对简单。如果您对爬虫感兴趣,则可以查看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 Basic Series”,共有5篇文章。

  导入数据

  使用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=0, how='any')

  计分场地清洁

  已爬网的分数字段收录冗余字符串,并且属于对象类型。需要将多余的字符串替换并转换为数字类型,以方便后续计算。

  df['评分'] = df['评分'].str.replace('分','').astype('float') #替换"分"为空,转换为浮点型

  添加材料字段

  为了便于分析配方中使用的成分,有必要根据成分字段计算每个配方中使用的成分量。由于材料字段之间用逗号分隔,因此可以通过计算逗号数间接获得它。

  df['用料'] = df['用料'].str.replace(',',',')

df['用料数'] = df['用料'].str.count(',') + 1

  预览数据

  df.head()

  

  数据可视化

  本文中的数据可视化主要使用pyecharts库,该库可以轻松实现炫酷的图表效果。如果您对可视化感兴趣,可以查看J兄弟先前的原创 文章“数据可视化分析系列”,其中涉及房地产,电子商务,招聘和其他领域。

  食谱得分分布

<p>from pyecharts import options as opts

from pyecharts.charts import Page, Pie

cut = lambda x : &#39;4分以下&#39; if x < 4 else (&#39;4.1-4.5分&#39; if x

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线