首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >线上服务器崩溃,线下门店破万,社交新宠「剧本杀」是如何迅速爆火的?

线上服务器崩溃,线下门店破万,社交新宠「剧本杀」是如何迅速爆火的?

作者头像
CDA数据分析师
发布2020-06-29 17:26:37
7760
发布2020-06-29 17:26:37
举报
文章被收录于专栏:CDA数据分析师CDA数据分析师

CDA数据分析师 出品

作者:Mika、泽龙

数据:真达

后期:泽龙

【导语】:今天我们来聊聊最近的社交游戏新宠--剧本杀,Python技术部分请看第三部分公众号后台,回复关键字“剧本杀”获取完整数据。

Show me data,用数据说话

今天我们聊一聊 剧本杀

点击下方视频,先睹为快:

如果问,线下聚会可以玩儿什么?狼人杀?密室逃脱?

nonono,说道现在社交游戏的新宠,就不得不提到ta——剧本杀。

剧本杀,最初源于欧美派对游戏“谋杀之谜”。玩家们需要根据自己拿到的剧本扮演角色,与其他玩家一起共同演绎故事,通过线索推断、交流,共同找到凶手并揭开故事全貌。

与狼人杀相似的是,二者都需要通过推理和表演找出凶手或者是掩饰自己。不同的是,狼人杀只有一个固定的剧情,即狼人在夜晚杀害村民,村民要在白天找出凶手。

而剧本杀则有不同的故事,无论从剧本、犯罪、作案到人物剧情都很多样化,加上线下剧本杀配备的服装、布景、道具,甚至玩上一局剧本杀,感觉像是经历了一场惊险刺激的沉浸式悬疑电影!

今天,我们就用数据跟大家盘一盘剧本杀。

01

被高分综艺带火的剧本杀

很多小伙伴第一次听说剧本杀,可能都是因为《明星大侦探》(下文简称《明侦》)。2016年的3月,芒果TV首播明星推理真人秀《明侦》第一季。目前《明侦》共推出了五季,播出后在豆瓣的评分都还不错,分别是9.3/ 9.1 / 9.1 / 8.6/ 8.5。角色扮演、搜证、推理基本构成了许多人对剧本杀的第一印象。

随着《明侦》的大火,剧本杀也逐渐走进大众的视野。

说白了,剧本杀就是一个集逻辑推理和角色扮演于一体的社交游戏。人生如戏,剧本杀让玩家通过演绎角色切身体会到不一样的多彩人生,同时通过逻辑推理让玩家在游戏中获得解谜烧脑的乐趣。

03

从线下门店到线上应用

剧本杀到底有多火?

近几年,剧本杀无论是线下实体店还是线上应用都得到了迅速的发展。

根据对美团点评的数据整理,2017年年初,剧本杀门店还仅有几十家,2018年年初增加到几百家,截至2019年12月,全国的剧本杀店已经由1月初的2400家飙升到12000家,一年之间开出一万家门店。

在今年2020年初,因受疫情影响,无法出门活动的人们迅速将目光聚集到了线上。大年初一,正处于疫情初期,就有用户反应《我是谜》APP游戏卡顿,同时微博热搜榜剧本杀APP《我是谜》也登榜,大量网友均反映系统崩溃。

随后《我是谜》创始人林世豪连忙发微博表示,对激增的访问人数感到惊讶,并表示马上叫程序员来修复。

说道剧本杀的核心,当然是剧本啦。故事写得好不好,情节和逻辑设置是否吸引人都是玩家尤其关注的点。那么哪些剧本最受追捧,剧本都在什么价钱呢?下面我们带大家分析下淘宝店铺的数据。

03

用Python分析

淘宝店铺剧本杀数据

作为桌游当中的一种,剧本杀在淘宝的销量数据如何呢?

我们用Python爬取了淘宝上的桌游剧本杀的关键词数据,下面一起具体看看:

桌游销量TOP10淘宝店铺

首先,我们看看那些桌游店铺最热门。

其中这家九卓家居专营店销量最高,其次位居二三的分别是游卡桌游昆高专卖店和艾雅玩具店。不过要注意的是,比起普通玩家,这些店铺买东西的主力肯定还是各大桌游店。

桌游店铺地区排名TOP10

这方面可以看到,桌游方面的淘宝店铺主要还是位于一线城市的。其中,上海、广东为第一第二位。浙江名列第三,北京位居第四。

桌游卡牌的价格区间

什么价位的桌游卡牌销量最高呢?

通过分析发现,显然50元以下的桌游销量最高,销售额占比高达42.72%。其次是50-100元的,销售额占比22.47%。然后比较贵的100-200的桌游销售额占比17.05%。

其中最主要的原因就是便宜,现在的50块钱可能连一顿下午茶钱都不够,二是因为50块钱的桌游大多数以纸牌为主,小巧便利,方便携带,出门消磨时光必备物件,很适合我们的生活方式,想要玩大型桌游,还是踏实去桌游店吧,规则看不懂还有法官。

剧本杀店铺销量数据

说完桌游店铺的数据,那么专门出售剧本杀相关产品的店铺数据如何呢?我们挑选了一家最火爆的剧本杀店铺,进行了分析。下面看到具体分析步骤:

我们使用Python获取了淘宝网上GoDan正版剧本杀商城商品和热评的数据进行了数据分析,地址如下:

https://shop387156301.taobao.com/category-1515015677.htm

实做过程分为:

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

1、数据获取

代码

# 导入所需包
import pandas as pd
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


# 登录淘宝
def login_taobao_acount():
    # 登录URL
    login_url = 'https://login.taobao.com/member/login.jhtml'

    # 打开网页
    browser.get(login_url)
    # 支付宝登录
    log = wait.until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, '#login-form > div.login-blocks.sns-login-links > a.alipay-login'))
    )
    log.click()


# 解析一页
def parse_one_page():
    # 保存信息
    title = []
    price = []
    sales_num = []
    comment_num = []

    # 获取内容
    contents = browser.find_elements_by_xpath('//*[@id="J_ShopSearchResult"]//div[@class="item3line1"]//dl[contains(@class, "item")]')

    for content in contents:
        # 获取标题
        title.append(content.find_element_by_xpath('.//dd[@class="detail"]/a').text)
        # 获取价格
        price.append(content.find_element_by_xpath('.//dd[@class="detail"]//div[@class="cprice-area"]').text)
        # 获取销量
        sales_num.append(content.find_element_by_xpath('.//div[@class="sale-area"]').text)
        # 获取评论
        comment_num.append(content.find_element_by_xpath('.//h4').text)

    # 保存数据
    df_one = pd.DataFrame({
        'title': title,
        'price': price,
        'sales_num': sales_num,
        'comment_num': comment_num
    })

    return df_one


# 获取所有页
def get_all_page():
    df_all = pd.DataFrame()

    # 初始URL
    start_url = 'https://shop387156301.taobao.com/category-1515015677.htm'

    # 获取URL
    browser.get(start_url)

    # 休眠
    time.sleep(3)

    for i in range(7):  # 共6页
        # 打印进度
        print('正在获取第{}页'.format(i+1))

        # 运行函数
        df_one = parse_one_page()

        # 循环追加
        df_all = df_all.append(df_one, ignore_index=True)

        # 判断
        if i == 6:
            break
        else:
            # 点击翻页
            click_button = browser.find_element_by_css_selector('#J_ShopSearchResult > div > div.shop-hesper-bd.grid > div.pagination > a.J_SearchAsync.next')
            click_button.click()

            # 休眠3秒
            time.sleep(3)

    return df_all

if __name__ == '__main__':
    # 实例化
    browser = webdriver.Chrome()
    wait = WebDriverWait(browser, 10)

    # 先登录
    login_taobao_acount()

    df = get_all_page()

我们获取到的数据格式如下,共有7页146条数据:

df.head()

2、数据导入和数据预处理

主要包含以下部分工作:

  1. 重复值处理
  2. 异常值处理
  3. title:提取一级标题和二级标题
  4. price:提取数值
  5. sales_num:提取数值
  6. comment_num:提取数值
  7. sales_amount:price * sales_num
# 导入包
import numpy as np 
import pandas as pd  
import re 

# 读入数据
df = pd.read_excel('../data/淘宝剧本商城数据.xlsx')

# 去重
df = df.drop_duplicates()

# 异常替换-预售
df['title'] = df.title.str.replace(r'【预售】', '')

# 标题
df['title_1'] = df.title.str.extract(r'【(.*?)】')
df['title_2'] = df.title.str.extract(r'【.*?】(.*)')
df['title_2'] = df.title_2.str.replace(re.compile(r'【.*?】'), '')

# strip
df['title_1'] = df.title_1.str.strip()
df['title_2'] = df.title_2.str.strip()

# 价格 
df['price'] = df.price.str.extract(r'(\d+)').astype('int')
# 销量
df['sales_num'] = df.sales_num.str.extract(r'(\d+)').astype('int')
# 评论数量
df['comment_num'] = df.comment_num.str.extract(r'(\d+)').astype('int')

# 计算销售额
df['sales_amount'] = df['price'] * df['sales_num']

# 删除title
df = df.drop(['title'], axis=1)
df.head()   

3、数据探索和可视化

from pyecharts.charts import Bar, Pie, Page
from pyecharts import options as opts 
from pyecharts.globals import SymbolType, WarningType
WarningType.ShowWarning = False 

GoDan商城价格分布

bins = [0,200,500,1000,4900]
bins_label = ['0-200', '200-500', '500-1000', '1000以上']

price_num = pd.cut(df.price, bins=bins, labels=bins_label) 
price_num = price_num.value_counts().sort_index() 
price_num
# 产生数据对
data_pair = [list(z) for z in zip(price_num.index.tolist(), price_num.values.tolist())]

# 绘制饼图
# {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
pie1.add('', data_pair=data_pair, radius=['35%', '60%'])
pie1.set_global_opts(title_opts=opts.TitleOpts(title='GoDan商城商品价格分布'), 
                     legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%'))
pie1.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%"))
pie1.set_colors(['#2C69B0', '#EA6B73', '#AC613C', '#E9C39B'])
pie1.render() 

首先看到价格区间。对比桌游50元以下的价格商品最热门,GoDan的剧本杀就很不一样了,而是价格在200 - 500之间产品最多,占比77.87%。毕竟一个剧本大概需要过五万字的文学创作,这个价钱也对得起我们的内容创作者。

销量TOP10剧本

# 销量top10
sales_top10 = df.groupby('title_1')['sales_num'].sum().sort_values(ascending=False)[:10] 
sales_top10 = sales_top10.sort_values()
sales_top10
title_1
朝别梨怨          61
孤城            62
爱幼妇产医院        64
古镜奇谈-月染长安     66
杀人回忆          76
愿我如星君如月       81
恶渊百物语         92
古木吟           95
窥镜            96
情辞白帝         134
Name: sales_num, dtype: int32
# 条形图
bar1 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar1.add_xaxis(sales_top10.index.to_list())
bar1.add_yaxis('', sales_top10.values.tolist())
bar1.set_global_opts(title_opts=opts.TitleOpts(title='GoDan商城销量Top10剧本'), 
                     visualmap_opts=opts.VisualMapOpts(max_=134))
bar1.set_series_opts(label_opts=opts.LabelOpts(position='right'))
bar1.reversal_axis()
bar1.render()

最后就是万众瞩目的top10的剧本排名,前三名「情辞百帝」、「窥镜」、「古木吟」C君都还没有玩过,可能是孤落寡闻了,但是「杀人回忆」这个本很多家桌游店都推过,玩起来非常不错,有机会可以统统尝试下。

04

玩了几百场剧本杀

如何精准发现当中套路

最近C君也沉迷于剧本杀,在玩了很多很多很多剧本后,发现一个惊人的事实,关于一个不用思考就可以找出凶手的逻辑,分享给你,保准你每次都是MVP。

当你玩了上百次剧本杀以后,你会发现当中的犯案动机真的是多种多样的,有时候还让人特别意想不到。所以想但从杀人动机、证据推理上推断出凶手那根本不可能,而且现在许多新出剧本写的越来越离谱,那该怎么玩儿呢?

所以古人有云,拨开表明看本质,当中的核心点就是“存在感”,而且是人越少越准。其实这和狼人杀中的珉人是一个道理,都是玄学。

但是剧本杀是游戏,是短时间信息密集游戏,所以每一个出场人物都有他纯在的道理。举个例子,去电影院看《唐人街探案》,人人都是福尔摩斯,但在生活中秒变脑残党,为什么?

其中很重要的就是圈层限定,凶手肯定是常出现的几个人之中,去掉主角、去掉酱油、可能只有一个人让你选了,剧本杀也一样,每个人都有必要的任务,你把每个人任务弄清楚,基本可以得出凶手是谁,这可比去盘逻辑简单多了。

有人会问,这不就失去了剧本杀的原本的乐趣了么?那就错了,其实玩剧本杀的人都知道,能投对凶手的剧本都是好剧本,投错了的剧本都是垃圾,最后结果还是很重要的。

结语

最后想说的是,剧本杀真的可以发散人的思维,因为这里有各种稀奇古怪的剧情,比电视剧可有意思多了,喜欢演戏,喜欢开脑洞的朋友们一定要去尝试下哦。

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

本文分享自 CDA数据分析师 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CDA数据分析师 出品
  • 1、数据获取
  • 2、数据导入和数据预处理
  • 3、数据探索和可视化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档