前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2021年度微博热搜回顾,暨开年热搜分析

2021年度微博热搜回顾,暨开年热搜分析

作者头像
数人之道
发布2022-02-14 11:29:20
2K0
发布2022-02-14 11:29:20
举报
文章被收录于专栏:数据技术数据技术

数人之道原创文章,转载请联系我们

2022 年虎年新春的钟声即将敲响,拼搏奋斗了一年,我们都期盼着归家的团聚与喜悦,洗去身上的疲倦,调整好状态,抖擞地继续新一年的征程。但如今国内已被奥密克戎攻破防线,新变种的病毒来势汹汹,全国包括一线城市在内的多个地区均已破防,这让春节的出行政策变得更加难以预测。希望大家都能如愿回家,过个好年。

在新的一年里,我们不妨停下匆匆的脚步,回顾过去的 2021 年,看看都发生了哪些大事,留下了哪些印记。

这次我们利用微博热搜的数据进行 2021 年及今年开年热点事件的回顾分析。分析前的准备工作不再赘述,可参考之前的数据分析文章。

1

热搜年度日历热度分布

获取去年所有的热搜数据,按日期汇总热度值,通过日历的形式,可视化输出热搜年度日历热度分布图。

【代码】

代码语言:javascript
复制
# 获取日期列表
def get_date_list(start, end):
    date_list = []
    start_dt = datetime.strptime(start, "%Y-%m-%d")
    end_dt = datetime.strptime(end, "%Y-%m-%d")
    while start_dt <= end_dt:
        date_list.append(start_dt.strftime("%Y-%m-%d"))
        start_dt = start_dt + timedelta(days=1)
    return date_list


# 获取热搜信息
def get_trend_topic():
    # 指定获取热搜的日期区间
    date_list = get_date_list("2021-01-01", "2021-12-31")
    topic = []
    hotNumber = []
    date = []
    month = []
    icon = []
    durations = []
    fenlei = []
    # 爬取指定日期的热搜内容
    for i in range(0, len(date_list)):
        url = "url" + date_list[i]
        res = requests.get(url=url, headers=headers)
        res.encoding = "utf-8"
        trend = json.loads(res.text)
        trend = trend["data"]
        # 循环获取热搜的各信息项
        for j in range(0, len(trend)):
            try:
                topic.append(trend[j]["topic"])
                hotNumber.append(trend[j]["hotNumber"])
                date.append("20" + trend[j]["date"][0:8])
                month.append("20" + trend[j]["date"][0:5])
                icon.append(trend[j]["icon"])
                durations.append(trend[j]["durations"])
                fenlei.append(trend[j]["fenlei"])
            except:
                print(trend[j]["date"])
                continue
        # 设置每日热搜请求的间隔时间
        time.sleep(0.5)

    # 创建数据表
    tb_trend = pd.DataFrame(
        {"topic": topic, "hotNumber": hotNumber, "date": date, "month": month, "icon": icon, "durations": durations, "fenlei": fenlei})
    # 删除重复行
    tb_trend = tb_trend.drop_duplicates()
    # 按日期汇总热搜热度值
    sum_hot = tb_trend.groupby("date", as_index=False)["hotNumber"].sum().values.tolist()
    # 数据可视化输出
    calendar(sum_hot, "2021年热搜日历分布图", "2021年热搜日历分布图")

【结果】

图1:2021 年度热搜日历热度分布情况

【分析】

热搜日历中,七月下旬到八月上旬的热搜热度值分布最为集中,可能是由于暑假及东京奥运会举办的缘故;一月份及年末的热搜热度最低,但在 11 月 17 日突然出现低热热搜季的小爆发。

2

最高热度日热搜

通过上面的热搜热度日历图,可以看到,2021 年度热搜的热度值最高的是七月份,表示七月份的热搜最密集。其中,热度最高的一天是 7 月 29 日。

我们抽取 7 月 29 日的数据,看看那一天大家都在讨论什么。

【结果】

图2:2021 年度热搜热度最高日前 15 大话题

【分析】

将热度最高日的数据提取后,按当天的话题进行热度值汇总,并排序,可以得到当日的最热话题。

看到热度最高日的话题基本围绕东京奥运会中国队的战况。而第一位话题是“林丹最敬佩的对手是李宗伟”,十分正能量的话题。此话题热度值简直爆表,成为年度 Top1 话题。可见,林丹和李宗伟在羽毛球场上相爱相杀的伟大友谊是多么的难能可贵,李宗伟的强大和刻苦给林丹带来很大的冲击力。

3

月度十大热搜

获取去年所有的热搜数据,按月份及话题汇总热度值,通过饼图的形式,可视化输出热搜月度前十大话题。

【代码】

代码语言:javascript
复制
# 按月份汇总热搜热度
sum_hot_mth_top = tb_trend.groupby(["topic", "month"], as_index=False)["hotNumber"].sum()
sum_hot_mth_top = sum_hot_mth_top.sort_values("hotNumber", ascending=False)

# 按月份提取每月热搜前十话题
for mth in month_list:
    sum_hot_mth_top_new = sum_hot_mth_top[sum_hot_mth_top["month"] == mth]
    name = sum_hot_mth_top_new["topic"].head(10).to_list()
    value = sum_hot_mth_top_new["hotNumber"].head(10).to_list()
    # 数据可视化输出
    pie(name, value, mth + "月热搜前10", mth + "月热搜前10")

【结果】

图3:2021 年月度热搜十大话题(1-12 月轮播)

视频:2021 年月度热搜十大话题(时长 35 秒)

【分析】

2021 年每个月的月度热搜前十大话题都能体现当月的重大热点事件,下面灏灏带大家一起来回顾一下。

  • 1 月:薇娅年货打响开年第一炮;乘风破浪的姐姐第二季开播引热议
  • 2 月:围绕着两位娱乐圈重量级人物去世的消息:吴孟达、赵英俊;牛年新春齐庆贺
  • 3 月:新能源汽车造车势力讨论;三部长期占据热搜的电视剧开播;新疆棉事件
  • 4 月:一线艺人离婚依然是全民关注的焦点;创造营开播;中国女足晋级奥运
  • 5 月:中国同一天、同一个时辰,痛失两位伟大的科学家、院士:袁隆平、吴孟超;三孩政策到来
  • 6 月:高考月;广州遭遇新冠德尔塔毒株疫情;神舟十二号载人飞船发射成功
  • 7 月:两位世界羽毛球坛巨将的惺惺相惜;吴亦凡与都美竹的纠缠;河南遭遇千年一遇特大暴雨;东京奥运会战况
  • 8 月:吴亦凡及东京奥运会占据整月热搜;苏炳添跑出“亚洲第一飞人”的称号
  • 9 月:孟晚舟被释放回国;九一八事变纪念;各地疫情;Netflix 现象级新剧《鱿鱼游戏》
  • 10 月:李云迪被刑拘并引发嫖娼话题热议;国庆
  • 11 月:EDG 获得电竞全球总决赛冠军;中国共产党第三个历史决议;头部主播偷逃税被罚
  • 12 月:薇娅偷逃税被处罚及封禁(真是首尾呼应);高质量发展内涵热议;今年多位明星被造谣后选择报警;霍尊事件反转

当然,有些大家仍记忆犹新的热点事件没有出现在月度热搜中,有可能是由于横跨两月,导致其权重下降。

4

热搜年度话题

获取去年所有的热搜数据,按话题汇总热度值,通过柱状图的形式,可视化输出热搜年度前 15 大话题。

【代码】

代码语言:javascript
复制
# 按话题汇总年度热搜热度
sum_hot_year_top = tb_trend.groupby("topic", as_index=False)["hotNumber"].sum()
sum_hot_year_top = sum_hot_year_top.sort_values("hotNumber", ascending=False)
name_year_hot = sum_hot_year_top["topic"].head(15).to_list()
value_year_hot = sum_hot_year_top["hotNumber"].head(15).to_list()
# 数据可视化输出
bars_non_slider2(name_year_hot, value_year_hot, "2021年度热搜最热话题", "2021年度热搜最热话题")

【结果】

图4:2021 年度热搜前 15 大话题

【分析】

“林丹最敬佩的对手是李宗伟”话题以爆表的热度引领年度热搜榜榜首。接下来是吴亦凡性侵被刑拘和袁隆平爷爷逝世。这两个放在一起感觉十分别扭,而且中国最伟大的科学家之一的关注度竟然还不及一个流量明星,着实让人感到唏嘘。

年度热搜前十五名大部分都是娱乐圈艺人、明星的负面消息(今年称之为娱乐圈明星集体塌房年真不为过)和电视剧、综艺节目;其余还有疫情、暴雨等社会热点新闻;袁隆平爷爷占据了两条年度热搜。

5

霸榜最长时间热搜

获取去年所有的热搜数据,按话题汇总在榜时长值,通过柱状图的形式,可视化输出热搜年度霸榜最长时间的前 15 大话题。

【代码】

代码语言:javascript
复制
# 按话题汇总热搜在榜时长
sum_duration = tb_trend.groupby("topic", as_index=False)["durations"].sum()
sum_duration = sum_duration.sort_values("durations", ascending=False)
name = sum_duration["topic"].head(15).to_list()
value = sum_duration["durations"].head(15).to_list()
# 数据可视化输出
bars_non_slider(name, value, "2021年热搜在榜时长前15", "2021年热搜在榜时长前15")

【结果】

图5:2021 年度热搜霸榜时长前 15 大话题

【分析】

2021 年霸榜微博热搜最长时间的话题基本都是电视剧及综艺节目。看来现在的电视剧和综艺通过购买热搜,利用热搜的热度进行宣传,已经成为常规操作了。

基金是唯一在霸榜时长前 15 中不是电视综艺的话题,且排在第五位,看来去年的基金行情是真绿得发慌(基金一上热搜准没好事)。

6

年度热搜类别

获取去年所有的热搜数据,按话题类别汇总热度值,通过柱状图的形式,可视化输出热搜年度前 15 大话题类别。

【代码】

代码语言:javascript
复制
# 按类别汇总热搜热度
sum_fenlei = tb_trend.groupby("fenlei", as_index=False)["hotNumber"].sum()
sum_fenlei = sum_fenlei.sort_values("hotNumber", ascending=False)
name_fenlei_hot = sum_fenlei["fenlei"].head(15).to_list()
value_fenlei_hot = sum_fenlei["hotNumber"].head(15).to_list()
# 数据可视化输出
bars_non_slider2(name_fenlei_hot, value_fenlei_hot, "2021年度热搜类别前15", "2021年度热搜类别前15")

【结果】

图6:2021 年度热搜热度前 15 大类别

【分析】

社会事件类话题毫无悬念地雄踞年度最受关注热搜类别,该类话题的热度大幅度超过其他类别。娱乐类话题(包括明星、综艺、电视剧、电影等)也占据了热搜相当大的比重。其余的是体育、时事、财经、互联网等与国计民生相关的类别话题。

7

热搜年度关键词

获取去年所有的热搜数据,对所有话题进行分词,并剔除停用词,统计分词的词频,通过词云的形式,可视化输出热搜年度关键词。

【代码】

代码语言:javascript
复制
# 将热搜话题用逗号分隔合并,转换成字符串
seg = tb_trend["topic"].to_list()
seg = ",".join(seg)
# 对合并后的热搜话题进行分词
seg_list = list(jieba.cut(seg))
seg_list_new = []
for m in range(0, len(seg_list)):
    if len(seg_list[m]) > 1 and is_number(seg_list[m]) == False:
        seg_list_new.append(seg_list[m])
# 统计分词结果词频,并转换为元组
result = Counter(seg_list_new).items()
# 数据可视化输出
word_cloud(result, "2021年度热搜关键词", "2021年度热搜关键词")

【结果】

图7:2021 年度热搜关键词

【分析】

热搜年度关键词排在前列的基本都是与新冠相关的(确诊、新增、疫苗、疫情、新冠、本土、病例、核酸、接种等),可见 2021 年,我们仍在与已经于全球范围流行了近两年的新冠病毒艰难抗争中。同时还有奥运相关的关键词,2021 年,我们见证了历史上第一次在非奥运年份举办奥运会。

这些或喜或悲的关键词伴随着我们走过了困难重重但又是一路高歌的一年。

8

2022 年开年热搜

获取今年所有的热搜数据,按话题汇总热度值,通过柱状图的形式,可视化输出热搜本年目前为止的前十大话题。

【结果】

图8:2022 开年热搜十大话题

【分析】

2022 年刚开年,新冠奥密克戎变种毒株攻破了中国的防线,而且还有研究表明罹患新冠后会造成男性性功能不可逆的损伤(简直骇人听闻,不知道是否外国的政治伎俩,迫使其国人接种疫苗)。

习主席的新年贺词、江歌母亲诉刘鑫案胜诉等正能量的事件为 2022 年开了一个好头。愿大家在虎年里都能有锦绣前程、累累硕果,美好始终相伴!

封面图片来源:unsplash

封面图片作者:Jan Baborák

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数人之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档