周星驰vs韩寒vs宁浩…Python告诉你春节该看哪部电影
本文作者用 Python 分析貓眼數(shù)據(jù)告訴你,當(dāng)周星馳攜《新喜劇之王》歸來(lái),黃渤沈騰強(qiáng)強(qiáng)聯(lián)合《瘋狂的外星人》、有《啥是佩奇》刷屏在前的《小豬佩奇過(guò)大年》、以及被譽(yù)為“中國(guó)第一部科幻大片”的《流浪地球》等數(shù)部大片齊聚春節(jié)檔時(shí),平日里寫代碼好不容易闔家團(tuán)圓的我們究竟該選擇哪部電影?
作者 | 羅昭成
責(zé)編 | 唐小引
出品 | CSDN(ID:CSDNnews)
引言
2019 年 1 月,《啥是佩奇》短片在互聯(lián)網(wǎng)快速傳播,各大社交平臺(tái)形成刷屏之勢(shì)。不到 24 小時(shí),官博發(fā)出的視頻已經(jīng)收獲 2800 萬(wàn)次觀看,14 萬(wàn)次點(diǎn)贊,17 萬(wàn)次轉(zhuǎn)發(fā)。
作為《小豬佩奇過(guò)大年》先導(dǎo)片,片中內(nèi)容不僅引人深思,也把我們的視線拉了到春節(jié)檔電影。在外工作一年,難得的幾天閑暇時(shí)間,回到家里,陪陪父母,看看孩子。可以和父母一起去看看電影,重溫一家人的溫暖。
扎堆上映的一大波影片讓我們眼花繚亂,在眾多電影中,我們應(yīng)該選擇哪一步電影來(lái)看呢?下面,我們用數(shù)據(jù)來(lái)分析分析,看看其他人都在看啥電影,讓我們從選擇恐懼癥中解放出來(lái)。
貓眼預(yù)售票房數(shù)據(jù)分析
和之前文章不同,本次爬取的電影都還沒(méi)有上映,所以筆者將側(cè)重點(diǎn)從評(píng)論數(shù)據(jù),轉(zhuǎn)移到了其他地方,來(lái)進(jìn)行我們想要的數(shù)據(jù)分析。
首先我們先來(lái)看看,春節(jié)檔的票房數(shù)據(jù),打開(kāi)貓眼專業(yè)版實(shí)時(shí)票房,我們可以看到某一天的票房數(shù)據(jù)。
此圖截于大年三十晚,可以看到《飛馳人生》在大幅上升,已經(jīng)趕超《流浪地球》
雖然能看到,但是要進(jìn)行分析,還是不太方便,所以先把數(shù)據(jù)都抓取下來(lái):
作者注:抓取分析數(shù)據(jù)截止時(shí)間為?2019-02-03 18:38:49,并非最新數(shù)據(jù),可能存在誤差。
使用 Chrome 的調(diào)試模式,在網(wǎng)絡(luò)請(qǐng)求中可以看到獲取實(shí)時(shí)數(shù)據(jù)的網(wǎng)絡(luò)請(qǐng)求:
https://box.maoyan.com/promovie/api/box/second.json?beginDate=20190205
拿到接口,就可以很簡(jiǎn)單地將數(shù)據(jù)拿下來(lái),并存儲(chǔ)起來(lái)。
發(fā)送網(wǎng)絡(luò)請(qǐng)求
Python 的 Request 庫(kù)可以很方便地發(fā)送網(wǎng)絡(luò)請(qǐng)求,代碼如下:
def?requestData(url,?params):
????session?=?requests.Session()
????headers?=?{
????????"User-Agent":?"Mozilla/5.0?(iPhone;?CPU?iPhone?OS?11_0?like?Mac?OS?X)",
????????"Accept":?"application/json",
????????"Connection":?"keep-alive",
????????"Accept-Language":?"en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6",
????????"Accept-Encoding":?"gzip,?deflate"
????}
????response?=?session.get(url,?params=params,?headers=headers)
????if?response.status_code?==?200:
????????return?response.text
????return?None
給定一個(gè) URL 地址,和上行的參數(shù),調(diào)用此方法,就可以模擬瀏覽器將數(shù)據(jù)拿回來(lái)。
存儲(chǔ)數(shù)據(jù)到數(shù)據(jù)庫(kù)中
Python 中還有一個(gè) JSON 庫(kù),可以方便地解析 JSON。本文中,也是使用的它來(lái)進(jìn)行的數(shù)據(jù)解析。因?yàn)閿?shù)據(jù)抓取了很多天的預(yù)售票房數(shù)據(jù),所以在存儲(chǔ)的時(shí)候,使用 movieId 和 date 組合為每一條數(shù)據(jù)的唯一 ID。為方便后面處理數(shù)據(jù),減少網(wǎng)絡(luò)請(qǐng)求,所以將所有的原始數(shù)據(jù)保存起來(lái)。代碼如下:
def?saveItem(date,?jsonStr):?
????dic?=?json.loads(jsonStr)["data"]
????boxUnit?=?dic["totalBoxUnitInfo"]
????dataList?=?dic["list"]
????for?item?in?dataList:
????????movieId?=?item["movieId"]
????????if?item["releaseInfo"]?==?u"上映首日"?or?item["releaseInfo"]?==?u"上映2天"?or?item["releaseInfo"]?==?u"上映3天"?:
????????????insertPiaofangMovieInfo(
????????????????str(movieId)?+?"_"?+?date,?date,?movieId,?item["movieName"],?
????????????????item["boxRate"],item["boxInfo"],boxUnit?,item["showRate"],
????????????????item["showInfo"],item["avgSeatView"],item["avgShowView"]
????????????)
在貓眼實(shí)時(shí)票房中,我們可以看到《瘋狂的外星人》票房最高。但并不太能直觀的感受到和其它幾部電影的差距,可視化展示數(shù)據(jù)能夠更加友好,這里使用了 pyechats 來(lái)進(jìn)行數(shù)據(jù)渲染。看圖說(shuō)話:
在圖中可以看到《瘋狂的外星人》的票房要選高于其他電影,而截止 2 月 3 日晚,《流浪地球》與《飛馳人生》的票房相當(dāng)(編者注:隨后在除夕夜《飛馳人生》趕超)。前段時(shí)間刷屏的《小豬佩奇過(guò)大年》的票房數(shù)據(jù)落底,實(shí)在有點(diǎn)令人吃驚,看這個(gè)數(shù)據(jù),佩奇再紅,還是干不過(guò)熊大熊二。
圖片來(lái)源:movie.douban.com
為了更好地給大家作參考,筆者還抓取了春節(jié)檔電影的“想看”數(shù)據(jù)。
接口:http://m.maoyan.com/ajax/detailmovie?movieId=movieId
拿到這些數(shù)據(jù),繪制了一個(gè)折線圖:
綜上我們可以看到,無(wú)論是實(shí)實(shí)在在的預(yù)售票房,還是眾口熱議的口碑上,《瘋狂的外星人》都是實(shí)質(zhì)名歸的贏家,筆者也建議有時(shí)間的朋友去看看。
另一方面,周星馳的《新喜劇之王》的想看量在 319844,位于春節(jié)檔的第三位。首日的數(shù)據(jù)票房卻只有不到 6000W,難道是朋友們都還在上班,我們欠星爺?shù)碾娪捌边€要繼續(xù)欠著?
圖片來(lái)源:movie.douban.com
史上最強(qiáng)春節(jié)檔的評(píng)分對(duì)比
分析完上面的票房與觀眾想看的數(shù)據(jù)過(guò)后,貓眼中還有關(guān)于春節(jié)檔節(jié)目的短評(píng)數(shù)據(jù),用戶也給了相應(yīng)的評(píng)分。憑借對(duì)導(dǎo)演與演員的信任度,給出了相應(yīng)的評(píng)分。
先將評(píng)論數(shù)據(jù)抓取到本地存儲(chǔ)。
接口: http://m.maoyan.com/review/v2/comments.json
代碼如下:
def?saveComment(movieId,?comment):
????conn?=?sqlite3.connect('spring_festival.db')
????conn.text_factory?=?str
????cursor?=?conn.cursor()
????ins?=?"insert?into?comments(id,?movieId,?content,?gender,?nick,?score,?original)?values?(?,?,?,?,?,?,?)"
????v?=?(comment["id"],?movieId,comment["content"],?comment["gender"],?comment["nick"],?comment["score"],?json.dumps(comment))
????cursor.execute(ins,?v)
????cursor.close()
????conn.commit()
????conn.close()
評(píng)分圖如下:
從上圖我們可以明顯地看出,春節(jié)檔之中,觀眾朋友對(duì)《新喜劇之王》、《流浪地球》、《飛馳人生》、《廉政風(fēng)云》、《熊出沒(méi)-原始時(shí)代》明顯有超高預(yù)期,而如《神探蒲松齡》、《小豬佩奇過(guò)大年》,觀眾對(duì)其預(yù)期明顯比其他電影要低。很難想象,前不久的《啥是佩奇》掀起全民佩奇熱,尤其今年還是佩奇年的時(shí)候,這股熱潮并沒(méi)有直接反應(yīng)到佩奇的年度大戲中,而今年春節(jié)檔唯一一部古裝戲,且有成龍大哥坐鎮(zhèn)的《神探蒲松齡》也并沒(méi)有打動(dòng)觀眾。
評(píng)論詞云
最后,我們?cè)僖栽~云來(lái)綜合看一下以上所有電影的評(píng)論關(guān)鍵詞,除卻“期待”之外,可以顯著地看到“沈騰”、“黃渤”、“流浪地球”,這人心所向一定程度上是極大的認(rèn)可,只不過(guò)比較讓人疑惑的是,為什么風(fēng)評(píng)不錯(cuò)的《流浪地球》,甚至一度有其(流浪地球)的出現(xiàn)“開(kāi)啟了中國(guó)科幻電影‘元年’,可以稱得上是春節(jié)自救指南,帶你流浪人生”這樣非常高的贊譽(yù)之聲,但為什么這一切沒(méi)有直接體現(xiàn)在票房上?此外,對(duì)于春節(jié)而言,所求無(wú)非是闔家歡樂(lè),無(wú)論看什么,最重要的,還是一起看的人。
謹(jǐn)以此文,祝所有程序員朋友新春大吉,闔家歡樂(lè),幸福團(tuán)圓!
(本文為AI科技大本營(yíng)轉(zhuǎn)載文章,轉(zhuǎn)載請(qǐng)聯(lián)系作者。)
公眾號(hào)后臺(tái)回復(fù):2018Python,獲取2018Python開(kāi)源項(xiàng)目Top100整理資料!或掃碼添加小助手微信,回復(fù):1,入群獲取。
推薦閱讀:
春節(jié)福利 | 給Python開(kāi)發(fā)者的新年禮物,快來(lái)拆開(kāi)
紅襪子、紅內(nèi)褲成最I(lǐng)n年貨,Python真相了~
助攻 NumPy,100 道練習(xí)題
一萬(wàn)多條拼車數(shù)據(jù),看春運(yùn)的遷徙圖
分析了35年的春晚節(jié)目,馮鞏成最強(qiáng)釘子戶
春節(jié)停車難?用Python找空車位
為何年終獎(jiǎng)多發(fā)一元,到手卻少兩千多?
熬夜寫代碼,不如換女裝入GitHub獲上千Star?
AI找Bug,一鍵快速預(yù)測(cè)
100+Python編程練習(xí)題~
總結(jié)
以上是生活随笔為你收集整理的周星驰vs韩寒vs宁浩…Python告诉你春节该看哪部电影的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 实心圆,如何用css3实现实心
- 下一篇: Minecraft 1.12.2模组开发