欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用Python来揭秘吃瓜群众是如何看待罗志祥事件的

程序员文章站 2023-02-21 22:08:45
前言 最近娱乐圈可以说得上是热闹非凡,前有霸道总裁爱小三,正宫撕逼网红女,后有阳光大男孩罗志祥,被周扬青扒的名声扫地。贵圈的爱情故事,常人是难以理解的,正如贾旭明张康这段相声所说的这样,娱乐圈的爱情总是分分合合,成为老百姓茶余饭后的谈资,城外的人想进去,城里的人真会玩。 各种版本的洗白、谣言遍地乱飞 ......
用Python来揭秘吃瓜群众是如何看待罗志祥事件的

 

 

前言

最近娱乐圈可以说得上是热闹非凡,前有霸道总裁爱小三,正宫撕逼网红女,后有阳光大男孩罗志祥,被周扬青扒的名声扫地。贵圈的爱情故事,常人是难以理解的,正如贾旭明张康这段相声所说的这样,娱乐圈的爱情总是分分合合,成为老百姓茶余饭后的谈资,城外的人想进去,城里的人真会玩。

用Python来揭秘吃瓜群众是如何看待罗志祥事件的

 

 

用Python来揭秘吃瓜群众是如何看待罗志祥事件的

 


各种版本的洗白、谣言遍地乱飞,吃瓜网友们是如何看待的呢?

用数据说话,是数据工作者的意义所在,整个数据分析的过程分为三步:

  • 数据获取
  • 数据预处理
  • 数据可视化及数据分析

以下是具体步骤和代码实现:

数据获取

数据获取地址:

'http://ent.163.com/20/0423/09/fastlq7i00038fo9.html'

 

在爬取评论数据之前,我们需要按f12对评论数据网页进行分析,可以发现共计172页,offset从0开始,每增加一页offset增加30,可以使用get方法获取。

用Python来揭秘吃瓜群众是如何看待罗志祥事件的

 

核心代码:

headers = {'user-agent': 'mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/80.0.3987.106 safari/537.36'}
# 评论地址
url="http://comment.api.163.com/api/v1/products/a2869674571f77b5a0867c3d71db5856/threads/fastlq7i00038fo9/comments/newlist?ibc=newspc&limit=30&showlevelthreshold=72&headlimit=1&taillimit=2&offset={}"
# 循环爬取
df = pd.dataframe(none)
i = 0
while true:
    ret = requests.get(url.format(str(i*30)), headers=headers)
    text = ret.text
    result = json.loads(text)
    t = result['comments'].values()
    s = json_normalize(t)
    i += 1
    if len(s) == 0:
        print("爬取结束")
        break
    else:
        df = df.append(s)
        print("第{}页爬取完毕".format(i))

df.to_csv('data.csv')

 

数据展示

用Python来揭秘吃瓜群众是如何看待罗志祥事件的

 

数据预处理

数据预处理是数据可视化之前非常重要的一部分。包含数据读取、评论去重、数据格式转换等

import pandas as pd
#数据读取
df = pd.read_csv('data.csv')
# 评论去重
df=df.drop_duplicates('commentid').reset_index(drop=true)
#格式转换
df['new_time'] = df.apply(lambda x : x['createtime'].split(':',1)[0],axis=1)

 

数据分析及可视化

1.事件关注指数

用Python来揭秘吃瓜群众是如何看待罗志祥事件的

 

从周扬青的微博、头条等平台的推送时间为4月23日9点,时间很准,足以说明为了这次离婚声明已准备有一段时间,绝非冲动所为。从发送内容上看,声明中开头略有调侃,后面刀刀见血,文笔也润色了不少。在事件发生后,关注指数来看,23日10点评论指数达到高峰,之后评论逐步减少。

2.网友评论词语分析

用Python来揭秘吃瓜群众是如何看待罗志祥事件的

 

从词云图中我们不难看出,很多人为周扬青打抱不平,跟随九年,最后闹得如此收场。隔着屏幕,都可以感受到大众对罗志祥人品的愤怒,当然也能看着吃瓜群众的呵呵声。艺人是公众人物,一言一行都会给社会,特别青少年群体带来深远的影响。人品不仅仅是镜头下的人品,更是生活中的人品。“始于颜值,陷于才华,忠于人品”是大众对胡歌的赞誉,也是老百姓对文艺工作者的期许,这是罗志祥要改正的地方。

核心代码

import jieba.analyse
import os 
from pyecharts.charts import wordcloud
from pyecharts.globals import symboltype, themetype 
from pyecharts.charts import page
from pyecharts import options as opts
def get_comment_word(df): 
    # 集合形式存储-去重
    stop_words = set()  
    print(stop_words)

    # 加载停用词
    cwd = os.getcwd() 
    stop_words_path = cwd + '/stop_words.txt'
    print(stop_words_path)

    with open(stop_words_path, 'r', encoding="iso-8859-1") as sw:
        for line in sw.readlines():
            stop_words.add(line.strip()) 
    print(stop_words)

    # 合并评论信息
    df_comment_all = df['content'].str.cat() 

    # 使用tf-idf算法提取关键词
    word_num = jieba.analyse.extract_tags(df_comment_all, topk=300, withweight=true, allowpos=())
    print(word_num)
    # 做一步筛选
    word_num_selected = []

    # 筛选掉停用词
    for i in word_num:
        if i[0] not in stop_words:
            word_num_selected.append(i) 
        else:
            pass 

    return word_num_selected

 

3.爱留言的吃瓜群众来自何处

用Python来揭秘吃瓜群众是如何看待罗志祥事件的

 

从上述图表中,我们可以看到广州、深圳、上海的网友留言位列前三名,喜欢评论的人基本处于一线城市、准一线城市,一方面是由于人口聚集量比较大,另外一方面为这些城市信息流通比较快。

核心代码

from snapshot_selenium import snapshot as driver
from pyecharts import options as opts
from pyecharts.charts import bar
from pyecharts.render import make_snapshot
df = df.groupby(['user.location']).agg({'序号':'count'}).reset_index()
df.rename(columns={'place':'user.location'}, inplace=true)
df = df[~df['user.location'].isin(['上海','中国','来自火星','火星'])]
df = df.sort_values(['序号'],axis = 0,ascending = false)
df_gb_top = df[:15]

def bar_chart() -> bar:
    c = (
        bar()
        .add_xaxis(list(df_gb_top['user.location']))
        .add_yaxis("写评论top15的地区", list(df_gb_top['序号']))
        .reversal_axis()
        .set_series_opts(label_opts=opts.labelopts(position="right"))
        .set_global_opts(title_opts=opts.titleopts(title="排行榜"))
    )
    return c

 

如果你处于想学python或者正在学习python,python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!