京公网安备 11010802034615号
经营许可证编号:京B2-20210330
【导语】:今天我们来聊聊最近的社交游戏新宠--剧本杀,Python技术部分请看第三部分。
Show me data,用数据说话
今天我们聊一聊 剧本杀
如果问,线下聚会可以玩儿什么?狼人杀?密室逃脱?
nonono,说道现在社交游戏的新宠,就不得不提到ta——剧本杀。
剧本杀,最初源于欧美派对游戏“谋杀之谜”。玩家们需要根据自己拿到的剧本扮演角色,与其他玩家一起共同演绎故事,通过线索推断、交流,共同找到凶手并揭开故事全貌。
与狼人杀相似的是,二者都需要通过推理和表演找出凶手或者是掩饰自己。不同的是,狼人杀只有一个固定的剧情,即狼人在夜晚杀害村民,村民要在白天找出凶手。
而剧本杀则有不同的故事,无论从剧本、犯罪、作案到人物剧情都很多样化,加上线下剧本杀配备的服装、布景、道具,甚至玩上一局剧本杀,感觉像是经历了一场惊险刺激的沉浸式悬疑电影!
今天,我们就用数据跟大家盘一盘剧本杀。
01被高分综艺带火的剧本杀

很多小伙伴第一次听说剧本杀,可能都是因为《明星大侦探》(下文简称《明侦》)。2016年的3月,芒果TV首播明星推理真人秀《明侦》第一季。目前《明侦》共推出了五季,播出后在豆瓣的评分都还不错,分别是9.3/ 9.1 / 9.1 / 8.6/ 8.5.角色扮演、搜证、推理基本构成了许多人对剧本杀的第一印象。
随着《明侦》的大火,剧本杀也逐渐走进大众的视野。
说白了,剧本杀就是一个集逻辑推理和角色扮演于一体的社交游戏。人生如戏,剧本杀让玩家通过演绎角色切身体会到不一样的多彩人生,同时通过逻辑推理让玩家在游戏中获得解谜烧脑的乐趣。
02从线下门店到线上应用 剧本杀到底有多火?
近几年,剧本杀无论是线下实体店还是线上应用都得到了迅速的发展。
根据对美团点评的数据整理,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、数据导入和数据预处理
主要包含以下部分工作:
title:提取一级标题和二级标题
price:提取数值
sales_num:提取数值
comment_num:提取数值
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。
当你玩了上百次剧本杀以后,你会发现当中的犯案动机真的是多种多样的,有时候还让人特别意想不到。所以想但从杀人动机、证据推理上推断出凶手那根本不可能,而且现在许多新出剧本写的越来越离谱,那该怎么玩儿呢?
所以古人有云,拨开表明看本质,当中的核心点就是“存在感”,而且是人越少越准。其实这和狼人杀中的珉人是一个道理,都是玄学。
但是剧本杀是游戏,是短时间信息密集游戏,所以每一个出场人物都有他纯在的道理。举个例子,去电影院看《唐人街探案》,人人都是福尔摩斯,但在生活中秒变脑残党,为什么?
其中很重要的就是圈层限定,凶手肯定是常出现的几个人之中,去掉主角、去掉酱油、可能只有一个人让你选了,剧本杀也一样,每个人都有必要的任务,你把每个人任务弄清楚,基本可以得出凶手是谁,这可比去盘逻辑简单多了。
有人会问,这不就失去了剧本杀的原本的乐趣了么?那就错了,其实玩剧本杀的人都知道,能投对凶手的剧本都是好剧本,投错了的剧本都是垃圾,最后结果还是很重要的。
结语
最后想说的是,剧本杀真的可以发散人的思维,因为这里有各种稀奇古怪的剧情,比电视剧可有意思多了,喜欢演戏,喜欢开脑洞的朋友们一定要去尝试下哦。
参考文献
剧本杀,能「杀」出一条财路吗?| 36氪新风向
https://mp.weixin.qq.com/s/evCJdX6JMc3szImf8hwwQw
《天天向上》告诉你,剧本杀有多火
https://mp.weixin.qq.com/s/e4Y6r5pc1qJ2t5pOpfF3Zg
剧本杀是什么?
https://www.douban.com/note/693384771/
线上井喷,社交新宠剧本杀真的是门好生意吗?
https://www.shangyexinzhi.com/article/517685.html
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
一、问题:为什么 ID 会"断号" 很多刚接触 MySQL 的同学都会有一个困惑:表里的主键 ID 是自增的,删了中间几行数据之后,ID 变 ...
2026-10-22一、问题场景:为什么会重复 JOIN 同一个子查询 在写复杂 SQL 时,经常遇到这种需求:同一张表或同一个聚合子查询,要和主表关联 ...
2026-10-22人力资源专员是HR体系的执行入口。招聘信息发布、简历初筛、面试安排、考勤汇总、入离职手续、劳动合同与档案管理,大多由这个岗 ...
2026-10-22人力资源经理问“必学技巧”,真正要解决的不是知识清单不够长,而是时间有限、业务催得紧,学完却用不上。更有效的路径是:先用 ...
2026-10-22内容营销岗位的核心任务,不是“把文案写得更漂亮”,而是围绕目标受众,用持续的内容供给影响认知、推动转化并沉淀复购。它至少 ...
2026-10-22理财经理培训课程很多,难的是判断“先学什么、后学什么、学完能做什么”。与其按课程名称罗列,不如先看岗位任务:客户分层与维 ...
2026-10-22理财经理的知识结构,可以先用一句话概括:合规与产品知识决定“不出错”,客户经营与资产配置决定“够不够专业”,市场研判与数 ...
2026-10-22经济学背景做数据分析,优势不在工具,而在问题意识:供需如何相互作用、成本与收益如何权衡、变量之间是相关还是因果。真正的缺 ...
2026-10-22需要,但要把“需要”理解准确。经济学本身就在处理数据:GDP、物价、就业、企业营收、问卷调研,都是经济分析的原料。真正的区 ...
2026-10-22经济学分析能力不是单一技能,它至少由三层构成:把现实问题转成可检验假设的理论框架能力、用数据与统计方法验证假设的工具能力 ...
2026-10-22金融分析师的知识提升,先补的不是更多模型,而是让结论可复核的底层能力。按任务顺序,大致是四层:财务与业务理解、指标口径管 ...
2026-10-22金融分析师的“通用技能”,指换到不同机构、不同行业组仍用得上的底层能力,而非某家公司内部系统的操作经验。按任务拆,日常要 ...
2026-10-22先给结论:数据分析证书不是金融分析师的准入条件,招聘方也不会因为一张证书就直接判断你能做分析。要不要考,取决于你当前任务 ...
2026-10-22金融分析师的核心技能,不是“会看K线”或“会讲宏观”,而是能把一家公司、一个行业或一类资产,转化为可核查的数据判断与书面 ...
2026-10-22产品经理的知识提升,不是把需求文档、原型、SQL、数据分析、项目管理都学一遍,而是先对准目标岗位的真实任务,找出自己最缺的 ...
2026-10-22产品专员提升工作知识,最有效的方式不是先囤课程,而是围绕日常交付的四件事来补:需求调研与优先级判断、原型与PRD表达、竞品 ...
2026-10-22产品运营专员提升个人能力,常见误区是先把Excel、SQL、Python列成一张学习清单,然后从第一个工具开始学。更有效的做法是先回答 ...
2026-10-22产品运营的能力提升,最怕从“课程目录”出发:今天学增长模型,明天背SQL语法,学完却说不清自己负责的功能为什么激活率低。更 ...
2026-10-22产品经理的技能和影响力不是两条分开的赛道。技能决定你能不能把问题分析清楚、把方案设计对;影响力决定你的判断能否被团队接受 ...
2026-10-22产品经理要学的数据分析能力,不是“会写SQL”或“会用BI工具”这么简单。更准确地说,是围绕需求评估、功能迭代、指标监控、实 ...
2026-10-22