- 一起用代码吸猫!本文正在参与【喵星人征文活动】。
最近掘金开展了《用代码“吸猫”》的活动,这个活动发起了两个灵魂拷问:
- 你有猫么?
- 你羡慕有猫的人吗?
我的回答是,我没有猫,也不羡慕有猫的人。活动要求用代码来吸猫,看了这个活动发现,对猫感兴趣的小伙伴还真不少啊,有些群友也老是给我晒猫,不禁让我对喵星人产生了好奇。
想吸猫肯定得先买猫把?想买猫至少得先了解猫吧? 作为一个对猫完全不了解的人,今天就借着这个活动好好了解一下各种宠物猫。
这里我找到了一个专门交易猫猫的网站-猫猫交易网:www.maomijiaoyi.com/
其中的猫咪品种栏目列出了各种类型的宠物猫:
我们可以采集一下其中的数据学习一下各种宠物猫的特点。
最终本文得到了如下效果:
数据采集
首先我们爬取主页可以爬到的链接列表:
1 | python复制代码 from lxml import etree |
打印结果如下:
我想更多的了解猫就必须点进详情页,看看详细的属性:
分别解析这三部分的数据,测试对这第一个链接解析:
1 | python复制代码 pet_name, pet_price, url = main_data[0] |
可以看到前两部分的数据都非常顺利的解析出来:
对于第三部分的数据也顺利的解析出来了:
除了文本说明信息外,我们还需要保存图片。下面解析图片网址并下载:
1 | python复制代码 img_urls = [ |
可以看到几张图片都顺利的下载下来:
那么我们可以整理一下网站的代码,将文本数据保存到Excel中,并将图片保存到文件中:
1 | python复制代码 import pandas as pd |
爬取结果前几列如下:
下载的各类猫的图片:
有了上面的Excel数据,我们就可以分析处理了:
数据分析
首先读取Excel的数据:
1 | python复制代码 import pandas as pd |
观察数据发现,很多宠物猫存在多个别名,我们可以做一张关系图展示每种猫对应的别名:
1 | python复制代码 from pyecharts import options as opts |
鼠标指向中心点时可以查看主名称:
宠物猫原产地分布:
1 | python复制代码 from pyecharts.charts import Bar |
可以看到各种宠物猫主要分布在英国、美国和苏格兰。
那么在画个树形图展示各品种的猫分布的国家:
1 | python复制代码 data = [] |
然后看下品种体型占比:
1 | python复制代码 from pyecharts.charts import Pie |
可以看到只有一种猫体型是最大的,即布偶猫。
下面我们找出价格最便宜和价格最贵的猫,目前认为最低价格最低的就是最便宜的品种,最高价格最高的就是最贵的品种:
1 | python复制代码 tmp = df.参考价格.str.split("-", expand=True) |
1 | css复制代码 最便宜的品种有: ['加菲猫', '金渐层', '银渐层', '橘猫'] |
对于数据集中的 [‘整体’, ‘毛发’, ‘颜色’, ‘头部’, ‘眼睛’, ‘耳朵’, ‘鼻子’, ‘尾巴’, ‘胸部’, ‘颈部’, ‘前驱’, ‘后驱’] 这些列都是对猫的描述文字,我们可以整体组合起来,给喵星人做个词云图:
1 | python复制代码 import stylecloud |
然后我们分别对性格特点和生活习性等做词云图。
性格特点词云图:
1 | python复制代码 import jieba |
1 | python复制代码 import jieba |
猫图生成
经过上面的分析,我们已经对猫有了一个基本的了解,接下来我们对各个品种的喵星人生成一张图。
该做一张什么图好呢?我认真想了一下就做一张思维导图。
首先生成分类文本:
1 | python复制代码 for a, bs in df.中文学名.groupby(df.体型): |
1 | 复制代码 中型 |
此时我将其粘贴到思维导图中,然后经常一段时间的编辑得到:
本文转载自: 掘金