全国结婚率连续5年下降,这届年轻人,为什么不敢结婚?

昨天在看头条的时候发现,结婚登记人数已连续7年下降,去年创17年来新低

我都惊呆了

细看发现2020年,官方统计的结婚登记人数共计814.33万对,较2019年减少了113万对。

这也是自2013年达到1346.93万对后,连续7年下降。2020年814.33万对的结婚登记人数,也创下了自2003年(国家统计局官网数据:811.4万对)以来,近17年中的新低

我们观察评论发现,大家对结婚率低这种现象都有自己的看法

我们今天就用爬虫来获取这些评论数据,看看除了看到的这些原因还有哪些是不为我们所知的

需求分析

我们要获取的数据有当前文章下的评论者的

用户名称、

评论内容、

帖子回复数、

评论点赞数、

和评论时间等

网页分析

首先我们F12打开浏览器开发者模式如下:

找到如上图评论所在位置以及网页请求的真实url

观察url特点,count=20代表每页十条评论数据,offset=0、20、40控制翻页,其余参数不发生变化

https://www.toutiao.com/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset=0&count=20&group_id=7032951744313164295&item_id=7032951744313164295

https://www.toutiao.com/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset=20&count=20&group_id=7032951744313164295&item_id=7032951744313164295

https://www.toutiao.com/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset=40&count=20&group_id=7032951744313164295&item_id=7032951744313164295

https://www.toutiao.com/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset=60&count=20&group_id=7032951744313164295&item_id=7032951744313164295

据此我们可以构造出多页请求的请求连接

url =f'https://www.toutiao.com/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset={(page-1)*20}&count=20&group_id=7032951744313164295&item_id=7032951744313164295'

发送请求

我们使用刚才找到的url先来获取单页请求信息

url =f'https://www.toutiao.com/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset={(page-1)*20}&count=20&group_id=7032951744313164295&item_id=7032951744313164295'

headers = {

'cookie':'xxxxxxxxxx',

'referer':'xxxxxxxxxx',

'user-agent':'xxxxxxxxxx'

}

resp = requests.get(url, headers = headers)

结果如下:

可以看到这是一个json格式的数据集,我们要获取的信息都在data列表的comment中。

分析到这里了,接下来就很简单了。

foriteminjson_data:

# 用户名称

user = item['comment']['user_name']

# 评论内容

text = item['comment']['text']

# 贴子回复数

reply = item['comment']['reply_count']

# 评论时间

times = item['comment']['create_time']

rls_time = time.strftime('%Y-%m-%d %H:%M', time.localtime(times))

# 评论点赞数

stars = item['comment']['digg_count']

ic(user, stars, rls_time, reply, text)

'''

ic| user: '快乐饼干Zp'

stars: 1741

rls_time: '2021-11-21 17:42'

reply: 239

text: '别再说是疫情惹的祸'

ic| user: '桐庐夜读'

stars: 253

rls_time: '2021-11-21 17:47'

reply: 43

text: '连续七年结婚率下降,不结婚何来生育率'

ic| user: 'Lily王之涵'

stars: 148

rls_time: '2021-11-21 17:50'

reply: 59

text: '2020年结婚的新人有我一个[可爱]'

ic| user: '小涛仔的生活视频'

stars: 206

rls_time: '2021-11-21 17:52'

reply: 43

text: '农村男光棍太多,结不起婚,也没有女的,我村有三十多个光棍,却没有一个未婚女的,真实的'

ic| user: '番茄1543353620246856'

stars: 197

rls_time: '2021-11-21 18:48'

reply: 11

text: ('现在有多少人敢结婚啊,万一遇到个渣渣,聊离婚都是麻烦。

'

'我朋友,遇到个渣男,各种上诉,终于男的答应离婚了,从广东到四川的车费都是我朋友给的,不给就不来。

'

'给了,来先申请离婚。结果中间遇到疫情,拖着了。错过了。又要重新来过。然后那男的就嫌麻烦,不来了。。。

'

'从13年结了婚生了孩子,这男人就没管过。还打我朋友。把我朋友打跑了,我朋友自己带孩子。这男人口口声声还说跟孩子讲,他爸爸死了。')

'''

多页获取

先获取2000条数据作为测试使用

forpageinrange(1,200+1):

url =f'https://www.toutiao.com/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset={(page-1)*20}&count=20&group_id=7032951744313164295&item_id=7032951744313164295'

数据保存

接下来我们使用openpyxl将数据保存在excel中。

共计1500+条

# 创建workbook

ws = op.Workbook()

# 创建worksheet

wb = ws.create_sheet(index=0)

# 创建表头

wb.cell(row=1, column=1, value='用户名称')

wb.cell(row=1, column=2, value='评论点赞')

wb.cell(row=1, column=3, value='评论时间')

wb.cell(row=1, column=4, value='贴子回复')

wb.cell(row=1, column=5, value='评论内容')

# 保存数据

ws.save('结婚率.xlsx')

print('数据保存完毕!')

数据预处理

我们首先使用熊猫读取excel。然后使用

pandas去除重复数据和缺失值。

# 读取数据

rcv_data = pd.read_excel('./结婚率.xlsx')

# 删除重复记录

rcv_data = rcv_data.drop_duplicates()

# 删除缺失值

rcv_data = rcv_data.dropna()

# 抽样展示5条数据

print(rcv_data.sample(5))

'''

用户名称  评论点赞              评论时间  贴子回复                                               评论内容

943     用户4947984566248     1  2021-11-21 17:50     0                                    合伙过日子不香吗,结什么婚呢?

635          成都绅士男士西宸天街     1  2021-11-21 19:00     0                                              这很正常啊

1594  黑矮子ReFuelYourlife     0  2021-11-21 23:15     0  互联网这个东西是好东西,也是坏东西,八几年,九几年攀比的人没那么多,因为好多数据他们都不知道...

12                  等名等   188  2021-11-21 19:05    11                       好事,,房价再高一点,加油 ,,[捂脸][捂脸][捂脸]

1854            kevin师傅     0  2021-11-21 21:17     0                                       结婚结不起 离婚也离不起

'''

词云展示

使用结巴分词

最后使用stylecloud绘制漂亮的词云图展示

# 词云展示

defvisual_ciyun():

pic ='./img.jpg'

gen_stylecloud(text=result,

icon_name='fas fa-feather-alt',

font_path='msyh.ttc',

background_color='white',

output_name=pic,

custom_stopwords=stop_words

)

print('词云图绘制成功!')

对词云有兴趣的小伙伴可以参考

如何使用python实现一个优雅的词云?(超详细)

词频展示

文章评论出现频率最高的前十个词分别如下:

defvisual_cipin():

# 词频设置

all_words = [wordforwordinresult.split(' ')iflen(word) >1andwordnotinstop_words]

wordcount = Counter(all_words).most_common(10)

x1_data, y1_data = list(zip(*wordcount))

'''

('结婚', '离婚', '不想', '离婚率', '孩子', '房价', '单身', '彩礼', '房子', '人口')

(805, 211, 210, 113, 98, 98, 79, 73, 63, 63)

'''

接下来我们使用可视化来直观的展示如下:

柱状图

饼图

气泡图

点赞最多&&回复最多

我们通过如下函数找到点赞最多的评论和回复最多的评论

defdatas_anay():

max_stars = rcv_data[rcv_data['评论点赞'] == rcv_data['评论点赞'].max()]

ic(max_stars)

max_reply = rcv_data[rcv_data['贴子回复'] == rcv_data['贴子回复'].max()]

ic(max_reply)

'''

用户名称  评论点赞              评论时间  贴子回复       评论内容

0  快乐饼干Zp  1615  2021-11-21 17:42   216  别再说是疫情惹的祸

用户名称  评论点赞              评论时间  贴子回复                                               评论内容

27  你们城里人真会玩111   182  2021-11-21 17:58   285  现在养女儿比养殖什么都划算。投资小风险小赚钱多。我三个姐那时候收的彩礼钱是5000/2000...

'''

点赞数最多的网友看法

获得点赞最多的是一名为快乐饼干Zp的用户评价,他的评论点赞数为1970

别再说是疫情惹的祸

再来看看用户评论点赞排行榜:

 回复数最多的网友看法

获得回复最多的是一个名为你们城里人真会玩111的用户评价,他的评论回复数为285,看来大货丢这条评论异议很大啊 

现在养女儿比养殖什么都划算。投资小风险小赚钱多。我三个姐那时候收的彩礼钱是5000/20000/20000。彩礼钱钱是用来买家电家具摩托车再送过去。要彩礼钱就是男方出钱女方挑家电。少有贪污聘金的,被人知道贪污会背后说他们卖女儿。女方富裕的还会倒贴钱。放在现在人口买卖的形式,有三个姐轻松入手百万

再来看看用户评论回复排行榜:

评论点赞时间

从下图我们可以直观的看到大家点赞的时间大多分布在

17:00-19:00

大家可以着这个时间点多发点评论可以后去到更多的赞哦

评论回复时间

想要获得更多回复可以选择在17:00-18:00之间去对文章进行评论

情感分析

我们以点赞最多评论为例分析观众对知乎的一些看法进行简单分析

我们是使用的库是SnowNLP

SnowNLP是一个基于Python的情感分析工具库,可以进行中文分词、词性标注、情感分析、文本分类、文本关键词提取等。

SnowNLP的情感值取值范围为0到1之间,值越大,说明情感倾向越积极。

# 情感分析

defanay_data():

all_words = [wordforwordinresult.split(' ')iflen(word) >1andwordnotinstop_words]

positibe = negtive = middle =0

foriinall_words:

pingfen = SnowNLP(i)

ifpingfen.sentiments >0.7:

positibe +=1

elifpingfen.sentiments <0.3:

negtive +=1

else:

middle +=1

print(positibe, negtive, middle)

'''

2499 919 7662

'''

从图中,我们可以看到,大家的评论积极态度的有22%,中等态度的占69%,消极态度只占8%,看来大家的心态还是很平和的。

情感分析树状图

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容