查看原文
其他

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

酷头酷头 印象Python 2022-08-01


文 | 酷头

来源:印象python「ID: python_logic」


嗨!大家好,我是酷头
欢迎来到学习python的宝藏基地~~~


长按下方二维码可以添加我为好友哦


【文末赠送机器学习入门:基于数学原理的Python实战书籍】


昨天在看头条的时候发现,结婚登记人数已连续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中。

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


for item in json_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条数据作为测试使用


 for page in range(1200+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绘制漂亮的词云图展示


# 词云展示
def visual_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实现一个优雅的词云?(超详细)





词频展示


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


def visual_cipin():
    # 词频设置
    all_words = [word for word in result.split(' 'if len(word) > 1 and word not in stop_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)
'''


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


柱状图



饼图



气泡图




点赞最多&&回复最多


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


def datas_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之间,值越大,说明情感倾向越积极。


# 情感分析
def anay_data():
    all_words = [word for word in result.split(' 'if len(word) > 1 and word not in stop_words]
    positibe = negtive = middle = 0
    for i in all_words:
        pingfen = SnowNLP(i)
        if pingfen.sentiments > 0.7:
            positibe += 1
        elif pingfen.sentiments < 0.3:
            negtive += 1
        else:
            middle += 1
    print(positibe, negtive, middle)
  
'''
2499 919 7662
'''


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


情感分析树状图






文末赠书


推荐《机器学习入门:基于数学原理的Python实战习实战》,送2本,

由北京大学出版社赞助。






本书亮点


机器学习是一门涉及高等数学、线性代数、概率论、统计学和运筹学等领域的交叉学科。
机器学习的基础就是数学,这也就要求学习者要有良好的数学基础。为了降低机器学习的学习门槛,本书深入浅出地对机器学习算法的数学原理进行了严谨的推导。
并利用Python 3对各种机器学习算法进行复现,还利用介绍的算法在相应数据集上进行实战。本书主要内容包括机器学习及其数学基础;线性回归、局部加权线性回归两种回归算法;
Logistic回归、Softmax回归和BP神经网络3种分类算法;模型评估与优化;K-Means聚类算法、高斯混合模型两种聚类算法和一种降维算法——主成分分析。《机器学习入门:基于数学原理的Python实战》理论性与实用性兼备,既可作为初学者的入门书籍,也可作为求职者的面试宝典,更可作为职场人士转岗的实用手册。
本书适合需要全面学习机器学习算法的初学者、希望掌握机器学习算法数学理论的程序员、想转行从事机器学习算法的专业人员、对机器学习算法兴趣浓厚的人员、专业培训机构学员和希望提高Python编程水平的程序员。






限时抢购👇






送书规则


送书方式:本次共包邮送书2本,均由留言送出!


留言内容:在本文下面留言,主题:说说你见到过的人工智能都有哪些牛x的应用?


开奖方式:选择精心留言8条,群抽奖参与赠书!


开奖时间:2021年11月29日20:00,开奖后12小时内未与我联系视为放弃,逾期不候。


抽奖规则:

1.截止日前需要给本文点赞+在看,领奖时需要提供截图,否则无效

2. 参与本次活动的读者需在活动截止前添加老邓好友,否则中奖无效!

3.每人限得一本!

4.当月中书者不参与此次活动!


往期精彩回顾
▼ 

PScrapy爬取B站666张小姐姐美照并存入Mysql和Excel

答应我以后不要再用print打印了,冰淇淋来了!

让人无法拒绝的pandas技巧,简单却好用到爆!

S实战| 全国鸿星尔克门店分布图,你的城市是最多的那个吗?

我用Python爬取了B站3948评论,围观最近超火的“杀疯了!这就是国家队的美貌吗?”评论区




分享

收藏

点赞

在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存