糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > Python爬虫分析 全国结婚率连续5年下降 这届年轻人 为什么不敢结婚?

Python爬虫分析 全国结婚率连续5年下降 这届年轻人 为什么不敢结婚?

时间:2023-10-20 00:59:07

相关推荐

Python爬虫分析 全国结婚率连续5年下降 这届年轻人 为什么不敢结婚?

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

我都惊呆了

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

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

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

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

需求分析

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

用户名称、

评论内容、

帖子回复数、

评论点赞数、

和评论时间等

网页分析

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

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

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

/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset=0&count=20&group_id=7032951744313164295&item_id=7032951744313164295

/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset=20&count=20&group_id=7032951744313164295&item_id=7032951744313164295

/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset=40&count=20&group_id=7032951744313164295&item_id=7032951744313164295

/article/v2/tab_comments/?aid=24&app_name=toutiao_web&offset=60&count=20&group_id=7032951744313164295&item_id=7032951744313164295

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

url=f'/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'/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:'-11-2117:42'

reply:239

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

ic|user:'桐庐夜读'

stars:253

rls_time:'-11-2117:47'

reply:43

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

ic|user:'Lily王之涵'

stars:148

rls_time:'-11-2117:50'

reply:59

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

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

stars:206

rls_time:'-11-2117:52'

reply:43

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

ic|user:'番茄1543353620246856'

stars:197

rls_time:'-11-2118:48'

reply:11

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

'

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

'

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

'

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

'''

多页获取

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

forpageinrange(1,200+1):

url=f'/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 -11-21 17:500合伙过日子不香吗,结什么婚呢?

635成都绅士男士西宸天街1-11-2119:000这很正常啊

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

12等名等188-11-2119:0511好事,,房价再高一点,加油,,[捂脸][捂脸][捂脸]

1854kevin师傅0-11-2121:170结婚结不起离婚也离不起

'''

词云展示

使用结巴分词

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

#词云展示

defvisual_ciyun():

pic='./img.jpg'

gen_stylecloud(text=result,

icon_name='fasfa-feather-alt',

font_path='msyh.ttc',

background_color='white',

output_name=pic,

custom_stopwords=stop_words

)

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

对词云有兴趣的小伙伴下期给大家介绍

词频展示

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

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快乐饼干Zp1615-11-2117:42216别再说是疫情惹的祸

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

27 你们城里人真会玩111 182 -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)

'''

24999197662

'''

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

情感分析树状图

最后祝大家天天进步!!学习Python最重要的就是心态。我们在学习过程中必然会遇到很多难题,可能自己想破脑袋都无法解决。这都是正常的,千万别急着否定自己,怀疑自己。如果大家在刚开始学习中遇到困难,想找一个python学习交流环境,可以加入我们的【python裙】,领取学习资料,一起讨论,会节约很多时间,减少很多遇到的难题。

如果觉得《Python爬虫分析 全国结婚率连续5年下降 这届年轻人 为什么不敢结婚?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。