情人节刚过!用Python分析7000条相亲数据,没有房真的好难!
“菜鸟学Python”,第“559”篇原创
话不多说,我们一起来看看吧。
01.数据获取
数据的来源,选择的是百合网的数据。传送门:https://search.baihe.com/。
上图中,每一i个用户都对应着一个uid数值。所以我们程序的第一步便是抓取所有用户的uid数值信息。
上图程序中,通过for循环的方式,来抓取页面中不同用户的uid信息。
第6-9行通过requests库来请求信息,将返回的数据保存到response_text变量中。
第11-15行数据,利用json库来解析数据后,提取当前页面中所有用户的uid数据后,保存在uids变量中。
调用getData函数,来进一步解析用户子页面中的详细数据。
02.用户子页面信息
在用户子页面中,我们可以进一步提取用户的详细信息,包括家乡地址,月薪,购房情况等。最重要的是,我们要抓取用户对于另一半的要求是怎样的,毕竟这也是男同胞们最为关注的内容。
上述的程序给出的是子页面详细数据的抓取。
第6-33行数据,通过for循环来抓取每一个uid详情页,对于数据采用xpath规则来进行解析。
当抓取数据完成后,通过34-43行程序,将数据保存到本地文件当中。
通过程序抓取,我们一共抓取到了七千余条的数据信息。
03.数据清洗
经过观察发现,抓取到的数据非常的杂乱,需要对数据进行处理。
菜鸟哥着重从三个方面进行数据的清洗。
年龄
收入
身高
这里我们以年龄的处理为例,进行简单的讲解。
第4行程序,去除掉数据当中的字符串“岁”;
第7-15行程序,将年龄段分为确切的数据。例如将”30-40“切分为[”30“, ”40“]
19-42行数据中,利用数据的平均值来替换掉“不限”的字符串。
46-48行数据,求出了女方对于男性的平均年龄要求。
04.数据分析
对于数据清洗完毕后,接下来我们就通过可视化的方式,来直观的观察数据的信息。
地域分布
首先,我们通过妹子们的地域分布,来观察一下全国省市中,单身妹子的分布情况。
可以看到,单身妹子的分布图中,中东部地区最为显著。无论南方还是北方,都有适合大家选择的地方。
学历
而在学历方面,单身妹子的学历大都集中在本科、大专和高中三个阶段。对于男方的学历要求当中,则普遍要高出一些。其中在本科和大专的学历要求上最为显著。
所以对于相亲对象来说,男方要有一个好的学历水平。
身高
在身高方面,女性的身高大都处在158-165cm之间,而对于男性的身高要求方面,则是在170-185之间,普遍比女性要高出10cm以上,才能达到要求。
年龄
在年龄方面,可以看到,单身妹子的年龄大都集中在30岁以上。而对于男性的年龄要求上,妹子们偏向于大一点的男生,可见,年龄上大一点的男生更加成熟,也更加收到青睐。
收入
05.总结
扫码加入,3周零基础入门
推荐阅读:
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|
年度爆款文案
点阅读原文,看200个Python案例!