前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬取2万条相亲数据!看看中国单身男女都在挑什么

Python爬取2万条相亲数据!看看中国单身男女都在挑什么

原创
作者头像
大数据分析不是事儿
修改2020-08-27 14:32:50
7390
修改2020-08-27 14:32:50
举报
文章被收录于专栏:商业智能方案商业智能方案

想必昨天的七夕节,一定是有人欢喜有人忧的一天,朋友圈里的晒照惹恼了我的一个程序员朋友,在昨晚怒爬2万条相亲网站数据,做了一次相亲男女画像

话不多说,我们今天就以某相亲网站为例子,爬取搜索页面当中所有的用户信息,包括“用户ID”、“年龄”、“城市”、“学历”、“属相”等内容,使用的工具是爬虫工具pycharm。

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

首先老规矩,爬虫之前我们先分析一些目标网页的构成,我们进入网站的搜索页面,摁下F12打开开发者工具,找到网页选项,看一下网页的Request URL和请求方式、user-agent等基本信息:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

请求方式是post,说明我们不用去源代码里找标签了,所有的数据都存放在网页的json文件当中,这倒是方便很多,我们直接通过链接直接获取API文件,不需要进行网页解析,点击HTR后点击“请求”就能看到表单数据了。

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

很显然,“sex”就是性别,“f”是“female”的缩写,“p”代表着页码,因为搜索页面一共有10页,所以我们需要构造一下完整的请求url:http://search.jiayuan.com/v2/search_v2.php?key=&sex=f&stc=1:11,2:18.24,3:155.170,23:1&sn=default&sv=1&p=1&f=select

当网页页码发生变化的时候,我们发现url当中只有p值发生了变化,因此只需要改变p值就能构造对应的URL。

好了,网页的构成都分析好了,下一步就要开始在pycharm当中写爬虫了,通过上面的url,我们可以获取到服务器返回的 json格式的用户信息,部分源代码如下:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

爬取的过程就不详细讲解了,因为这个网站还需要进行模拟登陆,所以需要登陆后将 cookie 放入爬虫的请求头中,这样便可正确访问数据。经过爬取后的数据清洗后如下:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

BI可视化分析

有了数据之后,我们下一步就是进行数据可视化分析了,这里我们把清洗好的数据导入到FineBI当中,在FineBI的主页创建Excel数据集,位置我们可以放在任意的一个业务包里:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

下一步为了能够在不改变源数据表的情况下进行数据加工和编辑,因此使用自助数据集的方式,将excel表当中的所有指标全部添加:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

在FineBI当中,我们可以对数据进行很多加工操作,比如过滤、分组汇总、新增列、排序、合并等等:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

因为我们已经在excel当中清洗过数据了,所以这次就不用进行加工处理了,直接选择创建一个可视化组件,命名为“相亲”:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

然后我们就进入了可视化操作页面,我们只需要将指标和维度拖入到横纵坐标轴上,选择对应的图表类型,比如这里选择了“柱状图”,就能自动展示出图表:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

当然我们也可以对指标和维度进行编辑,比如排序、分组、过滤等等:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

然后可以对图表进行一些优化,比如颜色、大小、标签等等,一个基础的可视化图表组件就完成了:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

结论分析

1、单身男女的学历情况分析

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

整体上看高学历的人数占比是很小的,大多数是大专和本科毕业,但是其中硕士的单身比例也非常高,因为一般来说,学历越高婚姻率越低;下面我们再看一下不同性别的学历情况:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

整体上看,女性的学历程度比起男性要低一些,大专以下的女性比例高,本科以上的男性比例高,这个也可能跟高学历的人数有关;

2、单身男女的婚姻状况

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

没想到,占比最大的婚姻状况竟然是离异,说明相亲网站上市场最大的对象是离异男女,占到了50%的比例;

我们再用性别维度进行拆解,发现整体比例是差不多的,但是男性的丧偶比例要高一下,未婚比例要比女性要低很多,说明相亲市场中未婚的还是以女性为主。

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

3、单身男女的年龄、身高情况

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

首先是年龄情况,可以看到相亲网站上用户的整体年龄偏大,主要的群体以30-40岁为主,但是男性的年龄分布出现了明显的断层,40岁-50岁的比例是很小的,但是55岁以上的比例又远超女性,看起来大龄剩男都是因为离异或者丧偶;

而女性在55岁之前的单身比例都比较高,55岁之后就断崖式下降了,看起来单身女性是个在各个年龄段都存在的问题啊。

下面我们再来看一下单身男女的身高情况:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

很显然,单身女性在“160cm”、“165cm”出现了两次高峰,单身男性在“170cm”、“175cm”出现了两次高峰。 据说女性不过160、男性不过175都很难找对象,看起来大家在填资料的时候,都或多或少往这两个数值上靠,整体上能看出来,个子不高确实不太好找对象。

为了更明显地看出男女身高与年龄的情况,我特意做了张分布图:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

4、单身男女的择偶观分析

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

这张图横坐标代表个人的年龄,纵坐标代表着择偶对象的心仪年龄高,基本上男女都呈现正相关的线性关系,但是男性明显对比自己年龄低的更喜欢,而女性则相反。

我们再来看一下单身男女对于未来配偶的条件分析:

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

果然有房有车才是大家最关心的条件,这也不能说错,因为单身年龄越大,对于生活的要求是偏高的;

5、单身男女的城市分布分析

Python爬取2万条相亲数据!看看中国单身男女都在挑什么
Python爬取2万条相亲数据!看看中国单身男女都在挑什么

为了方便看出分布情况,我采用了热力地图,实际上从数据上可以看出单身数量最多的城市都是一线城市,包括:上海、成都、广州、北京、天津等地。

因为爬取的信息有限,因此分析结论不是非常深入,仅供大家娱乐,祝大家早日找到心仪对象,明年七夕不单身!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • BI可视化分析
  • 结论分析
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档