
【導(dǎo)語(yǔ)】:今天我們來(lái)聊聊最近的社交游戲新寵--劇本殺,Python技術(shù)部分請(qǐng)看第三部分。
Show me data,用數(shù)據(jù)說(shuō)話
今天我們聊一聊 劇本殺
如果問(wèn),線下聚會(huì)可以玩兒什么?狼人殺?密室逃脫?
nonono,說(shuō)道現(xiàn)在社交游戲的新寵,就不得不提到ta——?jiǎng)”練ⅰ?
劇本殺,最初源于歐美派對(duì)游戲“謀殺之謎”。玩家們需要根據(jù)自己拿到的劇本扮演角色,與其他玩家一起共同演繹故事,通過(guò)線索推斷、交流,共同找到兇手并揭開(kāi)故事全貌。
與狼人殺相似的是,二者都需要通過(guò)推理和表演找出兇手或者是掩飾自己。不同的是,狼人殺只有一個(gè)固定的劇情,即狼人在夜晚殺害村民,村民要在白天找出兇手。
而劇本殺則有不同的故事,無(wú)論從劇本、犯罪、作案到人物劇情都很多樣化,加上線下劇本殺配備的服裝、布景、道具,甚至玩上一局劇本殺,感覺(jué)像是經(jīng)歷了一場(chǎng)驚險(xiǎn)刺激的沉浸式懸疑電影!
今天,我們就用數(shù)據(jù)跟大家盤一盤劇本殺。
01被高分綜藝帶火的劇本殺
很多小伙伴第一次聽(tīng)說(shuō)劇本殺,可能都是因?yàn)椤睹餍谴髠商健?下文簡(jiǎn)稱《明偵》)。2016年的3月,芒果TV首播明星推理真人秀《明偵》第一季。目前《明偵》共推出了五季,播出后在豆瓣的評(píng)分都還不錯(cuò),分別是9.3/ 9.1 / 9.1 / 8.6/ 8.5.角色扮演、搜證、推理基本構(gòu)成了許多人對(duì)劇本殺的第一印象。
隨著《明偵》的大火,劇本殺也逐漸走進(jìn)大眾的視野。
說(shuō)白了,劇本殺就是一個(gè)集邏輯推理和角色扮演于一體的社交游戲。人生如戲,劇本殺讓玩家通過(guò)演繹角色切身體會(huì)到不一樣的多彩人生,同時(shí)通過(guò)邏輯推理讓玩家在游戲中獲得解謎燒腦的樂(lè)趣。
02從線下門店到線上應(yīng)用 劇本殺到底有多火?
近幾年,劇本殺無(wú)論是線下實(shí)體店還是線上應(yīng)用都得到了迅速的發(fā)展。
根據(jù)對(duì)美團(tuán)點(diǎn)評(píng)的數(shù)據(jù)整理,2017年年初,劇本殺門店還僅有幾十家,2018年年初增加到幾百家,截至2019年12月,全國(guó)的劇本殺店已經(jīng)由1月初的2400家飆升到12000家,一年之間開(kāi)出一萬(wàn)家門店。
在今年2020年初,因受疫情影響,無(wú)法出門活動(dòng)的人們迅速將目光聚集到了線上。大年初一,正處于疫情初期,就有用戶反應(yīng)《我是謎》APP游戲卡頓,同時(shí)微博熱搜榜劇本殺APP《我是謎》也登榜,大量網(wǎng)友均反映系統(tǒng)崩潰。
隨后《我是謎》創(chuàng)始人林世豪連忙發(fā)微博表示,對(duì)激增的訪問(wèn)人數(shù)感到驚訝,并表示馬上叫程序員來(lái)修復(fù)。
說(shuō)道劇本殺的核心,當(dāng)然是劇本啦。故事寫得好不好,情節(jié)和邏輯設(shè)置是否吸引人都是玩家尤其關(guān)注的點(diǎn)。那么哪些劇本最受追捧,劇本都在什么價(jià)錢呢?下面我們帶大家分析下淘寶店鋪的數(shù)據(jù)。
03用Python分析淘寶店鋪劇本殺數(shù)據(jù)
作為桌游當(dāng)中的一種,劇本殺在淘寶的銷量數(shù)據(jù)如何呢?
我們用Python爬取了淘寶上的桌游劇本殺的關(guān)鍵詞數(shù)據(jù),下面一起具體看看:
桌游銷量TOP10淘寶店鋪
首先,我們看看那些桌游店鋪?zhàn)顭衢T。
其中這家九卓家居專營(yíng)店銷量最高,其次位居二三的分別是游卡桌游昆高專賣店和艾雅玩具店。不過(guò)要注意的是,比起普通玩家,這些店鋪買東西的主力肯定還是各大桌游店。
桌游店鋪地區(qū)排名TOP10
這方面可以看到,桌游方面的淘寶店鋪主要還是位于一線城市的。其中,上海、廣東為第一第二位。浙江名列第三,北京位居第四。
桌游卡牌的價(jià)格區(qū)間
什么價(jià)位的桌游卡牌銷量最高呢?
通過(guò)分析發(fā)現(xiàn),顯然50元以下的桌游銷量最高,銷售額占比高達(dá)42.72%。其次是50-100元的,銷售額占比22.47%。然后比較貴的100-200的桌游銷售額占比17.05%。
其中最主要的原因就是便宜,現(xiàn)在的50塊錢可能連一頓下午茶錢都不夠,二是因?yàn)?0塊錢的桌游大多數(shù)以紙牌為主,小巧便利,方便攜帶,出門消磨時(shí)光必備物件,很適合我們的生活方式,想要玩大型桌游,還是踏實(shí)去桌游店吧,規(guī)則看不懂還有法官。
劇本殺店鋪銷量數(shù)據(jù)
說(shuō)完桌游店鋪的數(shù)據(jù),那么專門出售劇本殺相關(guān)產(chǎn)品的店鋪數(shù)據(jù)如何呢?我們挑選了一家最火爆的劇本殺店鋪,進(jìn)行了分析。下面看到具體分析步驟:
我們使用Python獲取了淘寶網(wǎng)上GoDan正版劇本殺商城商品和熱評(píng)的數(shù)據(jù)進(jìn)行了數(shù)據(jù)分析,地址如下:
https://shop387156301.taobao.com/category-1515015677.htm
實(shí)做過(guò)程分為:
數(shù)據(jù)獲取
數(shù)據(jù)預(yù)處理
數(shù)據(jù)分析與可視化
1、數(shù)據(jù)獲取
代碼
# 導(dǎo)入所需包 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' # 打開(kāi)網(wǎng)頁(yè) 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() # 解析一頁(yè) def parse_one_page(): # 保存信息 title = [] price = [] sales_num = [] comment_num = [] # 獲取內(nèi)容 contents = browser.find_elements_by_xpath('//*[@id="J_ShopSearchResult"]//div[@class="item3line1"]//dl[contains(@class, "item")]') for content in contents: # 獲取標(biāo)題 title.append(content.find_element_by_xpath('.//dd[@class="detail"]/a').text) # 獲取價(jià)格 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) # 獲取評(píng)論 comment_num.append(content.find_element_by_xpath('.//h4').text) # 保存數(shù)據(jù) df_one = pd.DataFrame({ 'title': title, 'price': price, 'sales_num': sales_num, 'comment_num': comment_num }) return df_one # 獲取所有頁(yè) 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頁(yè) # 打印進(jìn)度 print('正在獲取第{}頁(yè)'.format(i+1)) # 運(yùn)行函數(shù) df_one = parse_one_page() # 循環(huán)追加 df_all = df_all.append(df_one, ignore_index=True) # 判斷 if i == 6: break else: # 點(diǎn)擊翻頁(yè) 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__': # 實(shí)例化 browser = webdriver.Chrome() wait = WebDriverWait(browser, 10) # 先登錄 login_taobao_acount() df = get_all_page()
我們獲取到的數(shù)據(jù)格式如下,共有7頁(yè)146條數(shù)據(jù):
df.head()
2、數(shù)據(jù)導(dǎo)入和數(shù)據(jù)預(yù)處理
主要包含以下部分工作:
title:提取一級(jí)標(biāo)題和二級(jí)標(biāo)題
price:提取數(shù)值
sales_num:提取數(shù)值
comment_num:提取數(shù)值
sales_amount:price * sales_num
# 導(dǎo)入包 import numpy as np import pandas as pd import re # 讀入數(shù)據(jù) df = pd.read_excel('../data/淘寶劇本商城數(shù)據(jù).xlsx') # 去重 df = df.drop_duplicates() # 異常替換-預(yù)售 df['title'] = df.title.str.replace(r'【預(yù)售】', '') # 標(biāo)題 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() # 價(jià)格 df['price'] = df.price.str.extract(r'(\d+)').astype('int') # 銷量 df['sales_num'] = df.sales_num.str.extract(r'(\d+)').astype('int') # 評(píng)論數(shù)量 df['comment_num'] = df.comment_num.str.extract(r'(\d+)').astype('int') # 計(jì)算銷售額 df['sales_amount'] = df['price'] * df['sales_num'] # 刪除title df = df.drop(['title'], axis=1) df.head()
3、數(shù)據(jù)探索和可視化
from pyecharts.charts import Bar, Pie, Page from pyecharts import options as opts from pyecharts.globals import SymbolType, WarningType WarningType.ShowWarning = False
GoDan商城價(jià)格分布
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
# 產(chǎn)生數(shù)據(jù)對(duì) data_pair = [list(z) for z in zip(price_num.index.tolist(), price_num.values.tolist())] # 繪制餅圖 # {a}(系列名稱),(數(shù)據(jù)項(xiàng)名稱),{c}(數(shù)值), geybsqlxm7mc(百分比) 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商城商品價(jià)格分布'), legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%')) pie1.set_series_opts(label_opts=opts.LabelOpts(formatter=":geybsqlxm7mc%")) pie1.set_colors(['#2C69B0', '#EA6B73', '#AC613C', '#E9C39B']) pie1.render()![]()
首先看到價(jià)格區(qū)間。對(duì)比桌游50元以下的價(jià)格商品最熱門,GoDan的劇本殺就很不一樣了,而是價(jià)格在200 - 500之間產(chǎn)品最多,占比77.87%。畢竟一個(gè)劇本大概需要過(guò)五萬(wàn)字的文學(xué)創(chuàng)作,這個(gè)價(jià)錢也對(duì)得起我們的內(nèi)容創(chuàng)作者。
銷量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 愛(ài)幼婦產(chǎn)醫(yī)院 64 古鏡奇談-月染長(zhǎng)安 66 殺人回憶 76 愿我如星君如月 81 惡淵百物語(yǔ) 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()
最后就是萬(wàn)眾矚目的top10的劇本排名,前三名「情辭百帝」、「窺鏡」、「古木吟」C君都還沒(méi)有玩過(guò),可能是孤落寡聞了,但是「殺人回憶」這個(gè)本很多家桌游店都推過(guò),玩起來(lái)非常不錯(cuò),有機(jī)會(huì)可以統(tǒng)統(tǒng)嘗試下。
04玩了幾百場(chǎng)劇本殺,如何精準(zhǔn)發(fā)現(xiàn)當(dāng)中套路
最近C君也沉迷于劇本殺,在玩了很多很多很多劇本后,發(fā)現(xiàn)一個(gè)驚人的事實(shí),關(guān)于一個(gè)不用思考就可以找出兇手的邏輯,分享給你,保準(zhǔn)你每次都是MVP。
當(dāng)你玩了上百次劇本殺以后,你會(huì)發(fā)現(xiàn)當(dāng)中的犯案動(dòng)機(jī)真的是多種多樣的,有時(shí)候還讓人特別意想不到。所以想但從殺人動(dòng)機(jī)、證據(jù)推理上推斷出兇手那根本不可能,而且現(xiàn)在許多新出劇本寫的越來(lái)越離譜,那該怎么玩兒呢?
所以古人有云,撥開(kāi)表明看本質(zhì),當(dāng)中的核心點(diǎn)就是“存在感”,而且是人越少越準(zhǔn)。其實(shí)這和狼人殺中的珉人是一個(gè)道理,都是玄學(xué)。
但是劇本殺是游戲,是短時(shí)間信息密集游戲,所以每一個(gè)出場(chǎng)人物都有他純?cè)诘牡览?。舉個(gè)例子,去電影院看《唐人街探案》,人人都是福爾摩斯,但在生活中秒變腦殘黨,為什么?
其中很重要的就是圈層限定,兇手肯定是常出現(xiàn)的幾個(gè)人之中,去掉主角、去掉醬油、可能只有一個(gè)人讓你選了,劇本殺也一樣,每個(gè)人都有必要的任務(wù),你把每個(gè)人任務(wù)弄清楚,基本可以得出兇手是誰(shuí),這可比去盤邏輯簡(jiǎn)單多了。
有人會(huì)問(wèn),這不就失去了劇本殺的原本的樂(lè)趣了么?那就錯(cuò)了,其實(shí)玩劇本殺的人都知道,能投對(duì)兇手的劇本都是好劇本,投錯(cuò)了的劇本都是垃圾,最后結(jié)果還是很重要的。
結(jié)語(yǔ)
最后想說(shuō)的是,劇本殺真的可以發(fā)散人的思維,因?yàn)檫@里有各種稀奇古怪的劇情,比電視劇可有意思多了,喜歡演戲,喜歡開(kāi)腦洞的朋友們一定要去嘗試下哦。
參考文獻(xiàn)
劇本殺,能「殺」出一條財(cái)路嗎?| 36氪新風(fēng)向
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
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10