前不久,小编刷到这样一条短视频,“1.7亿的90后仅有约1000万对结婚, 结婚率不到10% ”,当然我们也无法查实当中数据的来源以及真实性,不过小编倒是总能听说身边的朋友在抱怨脱单难、找不到合适的对象。
今天小编通过Python写了一个简单的脚本在抓取公开的相亲文案,看看 在相亲的都是些什么样的人 ?他们的 择偶标准又是什么样子的 ?什么样子的人更加容易脱单?
Python
requests
re
import requests
from tenacity import *
import re
import time
很多时候对遇到 请求超时的情况 ,因此当出现一次错的时候,我们会多尝试几次,因此这里使用 retry
装饰器来多次尝试
@retry(stop=stop_after_attempt(5))
def do_requests(url):
response = requests.get(url, headers=headers, proxies=proxies, timeout=10)
return response.text
我们抓取的数据包括 出生年份、身高/体重、学历、收入、职业、自我介绍、择偶标准、车房情况 等等,都是通过正则表达式 re
库来实现的,
date_of_birth = re.compile("
①出生年月/星座(.*?)
", re.M | re.S)
sex = re.compile("
【基本资料】(.*?)
")
height = re.compile("
②身高/体重(.*?)
")
education = re.compile("
⑤学历(.*?)
")
jobs_1 = re.compile("
⑥职业(.*?)
")
income = re.compile("
⑦月均收入(.*?)
")
married = re.compile("
⑨有无婚史(.*?)
")
house_cars = re.compile("
⑧车房情况(.*?)
")
self_intro = re.compile("
⑪ 自我介绍(.*?)
")
requirements = re.compile("
【择偶标准】
(.*?)")
family_member = re.compile("
⑩家庭成员(.*?)
")
下面我们通过 pyecharts
库来绘制一下分析的结果
我们先来看一下性别比例,从分布来看, 女生前来相亲的比例更高 ,主要也是因为数据源是来自北京、上海、杭州等 大城市的相亲介绍 ,大城市中似乎女生脱单更加困难一些,
我们再来看一下单身的女性的特征,首先她们的年龄主要集中在 94、93以及95年左右 ,正好都是处在适婚的年龄
而她们的学历, 本科占到了绝大多数 ,基本上都有本科的学历,而 大专的占比排在第二 ,硕士和博士处于少数
另外小编也对单身女性的星座做了一个统计,发现 处女座 、天秤座以及 射手座 、白羊座的女性 单身率略高一些
最后,我们来看一下她们的择偶标准吧,小编将她们的 择偶标准 单独提取出来,然后绘制成了词云图
review_list = []
reviews = get_cut_words("".join(df_girls["requirements"].astype(str).tolist()))
reviews_counter = Counter(reviews).most_common(200)
print(reviews_counter)
for review in reviews_counter:
review_list.append((" " + review[0] + " ") * review[1])
stylecloud.gen_stylecloud(text=" ".join(review_list), max_words=500, collocations=False,
font_path="KAITI.ttf", icon_name="fab fa-apple", size=653,
output_name="4.png")
最后呈现出来的样子如下图所示
可见相亲市场上的女生,她们首先是希望男方是要 有房有车 的,其次要是男方之前存在婚史,女生会比较介意,然后要是 有稳定的工作 、有能力有责任心,通常都会给女生留下比较好的印象,而至于外在条件上,大多数女生的回答则是身高在 175-180左右 ,年龄在 90-97年之间 。
近年来,随着人们思想观念的改变, 相亲也逐渐得到年轻人的接受与认可 ,特别是对于那些圈子比较窄,接触不到异性的人而言。小编希望每个人都能够在最后收获爱情,拥有美好的生活。