人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

使用Python編程分析火爆全網(wǎng)的魷魚游戲豆瓣影評(píng)

發(fā)布日期:2021-12-28 07:43 | 文章來(lái)源:源碼之家

Hello,各位讀者朋友們好啊,我是小張~

這不國(guó)慶嘛,就把最近很火的一個(gè)韓劇《魷魚游戲》刷了下,這部劇整體劇情來(lái)說(shuō)還是非常不錯(cuò)的,很值得一看,

作為一個(gè)技術(shù)博主,當(dāng)然不能在這兒介紹這部劇的影評(píng),畢竟自己在這方面不是專業(yè)的,最關(guān)鍵還是自己也寫不出來(lái)

技術(shù)工具

在正文開始之前,先介紹下本篇文章中用到的技術(shù)棧和工具。

本文用到的技術(shù)棧和工具如下,歸結(jié)為四個(gè)方面;

  • 語(yǔ)言:Python,Vue ,javascript;
  • 存儲(chǔ):MongoDB;
  • 庫(kù):echarts ,Pymongo,WordArt…
  • 軟件:Photoshop;

數(shù)據(jù)采集

本次數(shù)據(jù)采集的目標(biāo)網(wǎng)站為 豆瓣 ,但自己的賬號(hào)之前被封,所以只能采集到大概二百來(lái)?xiàng)l數(shù)據(jù),豆瓣有相應(yīng)的反爬機(jī)制,瀏覽10頁(yè)以上的評(píng)論需要用戶登錄才能進(jìn)行下一步操作

至于為啥賬號(hào)被封,是因?yàn)橹白约簩W(xué)爬蟲時(shí)不知道在哪里搞的【豆瓣模擬登錄】代碼,當(dāng)時(shí)不知道代碼有沒(méi)有問(wèn)題,愣頭青直接用自己的號(hào)試了下,誰(shuí)知道剛試完就被封了,而且還是永久的那種

圖1

在這里也給大家提個(gè)醒在以后做爬蟲時(shí),模擬登錄時(shí)盡量用一些測(cè)試賬號(hào),能不用自己的號(hào)就別用,

這次數(shù)據(jù)采集也比較簡(jiǎn)單,就是更改圖2 中 url 上的 start 參數(shù),以 offset 為 20 的規(guī)則 作為下一頁(yè) url 的拼接;

圖2

拿到 請(qǐng)求連接之后,用 requests 的 get 請(qǐng)求,再對(duì)獲取到的 html 數(shù)據(jù)做個(gè)解析,就能獲取到我們需要的數(shù)據(jù)了;采集核心代碼貼在下方

for offset in range(0,220,20):
 url = "https://movie.douban.com/subject/34812928/comments?start={}&limit=20&status=P&sort=new_score".format(offset)
 res = requests.get(url,headers= headers)
 # print(res.text)
 soup = BeautifulSoup(res.text,'lxml')
 time.sleep(2)
 for comment_item in soup.select("#comments > .comment-item"):
  try:
data_item = []
avatar = comment_item.select(".avatar a img")[0].get("src")
name = comment_item.select(".comment h3 .comment-info a")[0]
rate = comment_item.select(".comment h3 .comment-info span:nth-child(3)")[0]
date = comment_item.select(".comment h3 .comment-info span:nth-child(4)")[0]
comment = comment_item.select(".comment .comment-content span")[0]
# comment_item.get("div img").ge
data_item.append(avatar)
data_item.append(str(name.string).strip("\t"))
data_item.append(str(rate.get("class")[0]).strip("allstar").strip('\t').strip("\n"))
data_item.append(str(date.string).replace('\n','').strip('\t'))
data_item.append(str(comment.string).strip("\t").strip("\n"))
data_json ={
 'avatar':avatar,
 'name': str(name.string).strip("\t"),
 'rate': str(rate.get("class")[0]).strip("allstar").strip('\t').strip("\n"),
 'date' : str(date.string).replace('\n','').replace('\t','').strip(' '),
 'comment': str(comment.string).strip("\t").strip("\n")
}
if not (collection.find_one({'avatar':avatar})):
print("data _json is {}".format(data_json))
collection.insert_one(data_json)
f.write('\t'.join(data_item))
f.write("\n")
  except Exception as e:
print(e)
continue

豆瓣爬取時(shí)需要記得加上 cookie 和 User-Agent,否則不會(huì)有數(shù)據(jù)為空,

為了后面數(shù)據(jù)可視化提取方便,本文用的是 Mongodb 作為數(shù)據(jù)存儲(chǔ),共有211 條數(shù)據(jù),主要采集的數(shù)據(jù)字段為 avatarname、ratedate、comment,分別表示用戶頭像、用戶名字、星級(jí)、日期,評(píng)論;結(jié)果見(jiàn)圖3;

圖3

關(guān)于 Python 怎么使用 MongoDB,可以參考舊聞

數(shù)據(jù)可視化

可視化部分之前打算用 Python + Pyecharts 來(lái)實(shí)現(xiàn),但 Python 圖表中的交互效果不是很好,索性就直接用原生 Echarts + Vue 組合來(lái)實(shí)現(xiàn),而且,這樣的話,將所有圖表放在一個(gè)網(wǎng)頁(yè)中也比較方便

首先是對(duì)評(píng)論時(shí)間與評(píng)論數(shù)量做了一個(gè)圖表預(yù)覽,根據(jù)這些數(shù)據(jù)的評(píng)論時(shí)間作為一個(gè)散點(diǎn)圖分布,看一下用戶評(píng)論主要的時(shí)間分布

圖4

圖4中點(diǎn)的大小和顏色代表當(dāng)天評(píng)論數(shù)量,而評(píng)論數(shù)量也可以側(cè)面反應(yīng)該劇當(dāng)天的熱度。

可以 了解到,《魷魚游戲》影評(píng)從 9 月17 日開始增長(zhǎng),在 20 號(hào)數(shù)量達(dá)到頂峰,21 日回落;在21日-29日評(píng)論數(shù)量來(lái)回震蕩,相差不大;

直到國(guó)慶 10月1日最少,猜測(cè)可能是一方面是國(guó)慶假期大家都出去玩的緣故,另一方面是隨著時(shí)間推移,這個(gè)劇的熱度也就降下來(lái)了

為了了解大家對(duì)《魷魚游戲》的評(píng)價(jià),我對(duì)這二百條數(shù)據(jù)對(duì)這個(gè)劇的【評(píng)分星級(jí)】繪制了一個(gè)餅圖,最終效果見(jiàn) 圖5

圖5

說(shuō)實(shí)話圖5 的結(jié)果讓我有些意外,至少對(duì)于我而言這部劇質(zhì)量說(shuō)實(shí)話還是蠻高的,繪圖之前以為【五星】的占比應(yīng)該是最大的,其次是【四星】,再然后是【三星】;

現(xiàn)在【三星】和【五星】的占比恰恰相反,猜測(cè)可能是這部劇的情節(jié)比較殘忍,會(huì)引起人的不適,所以高分占比不高;

為了方便,最后我將上面兩張圖表放置在一個(gè)網(wǎng)頁(yè)上,效果見(jiàn)圖6 和 圖7 兩種不同布局

垂直布局

圖6

水平布局

圖7

詞云可視化

本次采集的數(shù)據(jù)信息有限能分析的數(shù)據(jù)維度不多,關(guān)于數(shù)據(jù)圖表方面的分析基本就到這里了,下面是對(duì)采集到的評(píng)論做了幾張?jiān)~云圖

圖8

從圖8來(lái)看,去除現(xiàn)實(shí)中常用到的還是、就是等口頭語(yǔ),人性 是影評(píng)中頻率最高的一個(gè)詞,而這個(gè)詞確實(shí)符合《魷魚游戲》這部劇的主題,從第一集開始到結(jié)束都是在刨析人性,賭徒們的”貪婪、賭性成癮“,貴賓們的”弱肉強(qiáng)食“

圖9

對(duì)比上張?jiān)~云圖,圖9凸顯的信息相對(duì)就多了些,例如韓國(guó)、人設(shè)、刺激、劇情、賭博默示錄、題材等都與劇情有關(guān),除了這幾個(gè)信息之外,李政宰、孔劉、李秉憲 等幾個(gè)主演也被提到

最后,我將采集到的用戶頭像做了兩張圖片墻作為文章的結(jié)尾

圖10

圖10照片墻的輪廓采用的是劇中的人物截圖,一個(gè)是123木頭人 ,另外一個(gè)是男一在玩游戲二的一個(gè)鏡頭:

關(guān)于照片墻制作方法,可參考舊聞:

小結(jié)

好了,以上就是本篇文章的全部?jī)?nèi)容了,本文分析到的東西并不多,主要是介紹了 Python 在數(shù)據(jù)采集和可視化方面的一些應(yīng)用。

如果內(nèi)容對(duì)你有所幫助的話,歡迎讀者朋友們將文章 分享 給更多的人!

最后感謝大家的閱讀,我們下期見(jiàn)~

更多關(guān)于Python分析豆瓣影評(píng)的資料請(qǐng)關(guān)注本站其它相關(guān)文章!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部