自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

爬了《邪不壓正》上萬條網(wǎng)評(píng),告訴你到底值不值得看?

開發(fā) 后端 開發(fā)工具
萬眾期待的《邪不壓正》已上映有一周多的時(shí)間。但上映當(dāng)日早上開畫 8.2,上映不到一天閃崩到 7.1 的評(píng)分好像已經(jīng)給這部本該大展拳腳的片子,戴上了一個(gè)結(jié)結(jié)實(shí)實(shí)的囚具。

 萬眾期待的《邪不壓正》已上映有一周多的時(shí)間。但上映當(dāng)日早上開畫 8.2,上映不到一天閃崩到 7.1 的評(píng)分好像已經(jīng)給這部本該大展拳腳的片子,戴上了一個(gè)結(jié)結(jié)實(shí)實(shí)的囚具。

首日票房雖然過億,卻依舊不敵多日日票房冠軍的《我不是藥神》;難道姜文又搞砸了?不管如何,姜文的電影總能掀起影評(píng)人高漲的評(píng)論熱情。

接下來,我們將用 Python 爬取貓眼上萬條評(píng)論數(shù)據(jù)來分析,告訴你網(wǎng)友對(duì)姜文這部電影的反響究竟如何?

整體思路,將會(huì)從數(shù)據(jù)獲取、數(shù)據(jù)處理、數(shù)據(jù)可視化三部曲來進(jìn)行。

數(shù)據(jù)獲取

關(guān)于如何獲取網(wǎng)頁的數(shù)據(jù),我一直推薦三步走:

  • 下載數(shù)據(jù)
  • 解析數(shù)據(jù)
  • 保存數(shù)據(jù)

在下載數(shù)據(jù)之前,我們看看貓眼官網(wǎng)的網(wǎng)頁結(jié)構(gòu),看看網(wǎng)友的評(píng)論數(shù)據(jù)接口究竟在哪?

然而,打開貓眼網(wǎng)頁(http://maoyan.com/films/248566)只有寥寥幾個(gè)評(píng)論。

那么它的數(shù)據(jù)會(huì)不會(huì)是通過 Json 格式保存到服務(wù)器中呢?無奈只能通過抓包貓眼 App 來找其數(shù)據(jù)接口。

最后,發(fā)現(xiàn)其數(shù)據(jù)接口為:

http://m.maoyan.com/mmdb/comments/movie/248566.json?_v_=yes&offset=1

其中 258566 屬于電影的專屬 id,offset 代表頁數(shù),如下圖:

最后檢驗(yàn),這個(gè)接口只給展示 1000 頁數(shù)據(jù),如下:

接口找到后,開始寫爬取數(shù)據(jù)代碼,詳情代碼如下:

  1. import requests 
  2. import json 
  3. import time 
  4. import random 
  5.  
  6. #下載第一頁數(shù)據(jù) 
  7. def get_one_page(url): 
  8.  headers = { 
  9.    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36' 
  10.  } 
  11.  response = requests.get(url,headers=headers) 
  12.  if response.status_code == 200: 
  13.    return response.text 
  14.  return None 
  15.  
  16. #解析第一頁數(shù)據(jù) 
  17. def parse_one_page(html): 
  18.  data = json.loads(html)['cmts'
  19.  for item in data: 
  20.    yield{ 
  21.    'comment':item['content'], 
  22.    'date':item['time'].split(' ')[0], 
  23.    'rate':item['score'], 
  24.    'city':item['cityName'], 
  25.    'nickname':item['nickName'
  26.    } 
  27.  
  28. #保存數(shù)據(jù)到文本文檔 
  29. def save_to_txt(): 
  30.  for i in range(1,1001): 
  31.    url = 'http://m.maoyan.com/mmdb/comments/movie/248566.json?_v_=yes&offset=' + str(i) 
  32.    html = get_one_page(url) 
  33.    print('正在保存第%d頁。'% i) 
  34.    for item in parse_one_page(html): 
  35.      with open('xie_zheng.txt','a',encoding='utf-8'as f: 
  36.        f.write(item['date'] + ',' + item['nickname'] + ',' + item['city'] + ',' +str(item['rate'])+','+item['comment']+'\n'
  37.    time.sleep(5 + float(random.randint(1, 100)) / 20) 
  38.  
  39. if __name__ == '__main__'
  40.  save_to_txt() 

數(shù)據(jù)處理

獲取數(shù)據(jù)后發(fā)現(xiàn),會(huì)有一些數(shù)據(jù)重復(fù),如下圖:

因此需要腳本批量對(duì)數(shù)據(jù)進(jìn)行去重處理,詳情代碼如下:

  1. def xie_zheng(infile,outfile): 
  2.  infopen = open(infile,'r',encoding='utf-8'
  3.  outopen = open(outfile,'w',encoding='utf-8'
  4.  lines = infopen.readlines() 
  5.  list_l = [] 
  6.  for line in lines: 
  7.    if line not in list_l: 
  8.      list_l.append(line) 
  9.      outopen.write(line) 
  10.  infopen.close() 
  11.  outopen.close() 
  12.  
  13. if __name__ == '__main__'
  14.  xie_zheng('文本原路徑','目標(biāo)路徑'

每天可以不定時(shí)(每隔四五小時(shí)獲取一次數(shù)據(jù),基本每次可獲取 900 多條數(shù)據(jù)),最終我獲取到 7/15-7/18 之間上萬條來作為數(shù)據(jù)集分析。

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

今天,我們就用 pyecharts 將清理過后的萬條評(píng)論數(shù)據(jù)來實(shí)現(xiàn)可視化。

pyecharts 是一個(gè)用于生成 Echarts 圖表的類庫。Echarts 是百度開源的一個(gè)數(shù)據(jù)可視化 JS 庫。

用 Echarts 生成的圖可視化效果非常棒,pyecharts 是為了與 Python 進(jìn)行對(duì)接,方便在 Python 中直接使用數(shù)據(jù)生成圖。(詳情請(qǐng)看:http://pyecharts.org/)

粉絲北上廣及沿海一帶居多

由上圖,可以看出北上廣一帶的用戶相對(duì)較多,這些地方的互聯(lián)網(wǎng)用戶基數(shù)本來就大,同時(shí)沿海一代的三四線城市也成為票房貢獻(xiàn)者的一部分。

詳情代碼如下:

  1. from pyecharts import Style 
  2. from pyecharts import Geo 
  3.  
  4. #讀取城市數(shù)據(jù) 
  5. city = [] 
  6. with open('xie_zheng.txt',mode='r',encoding='utf-8'as f: 
  7.  rows = f.readlines() 
  8.  for row in rows
  9.    if len(row.split(',')) == 5: 
  10.      city.append(row.split(',')[2].replace('\n','')) 
  11.  
  12. def all_list(arr): 
  13.  result = {} 
  14.  for i in set(arr): 
  15.    result[i] = arr.count(i) 
  16.  return result 
  17.  
  18. data = [] 
  19. for item in all_list(city): 
  20.  data.append((item,all_list(city)[item])) 
  21.  style = Style( 
  22.    title_color = "#fff"
  23.    title_pos = "center"
  24.    width = 1200, 
  25.    height = 600, 
  26.    background_color = "#404a59" 
  27.    ) 
  28.  
  29. geo = Geo("《邪不壓正》粉絲人群地理位置","數(shù)據(jù)來源:戀習(xí)Python",**style.init_style) 
  30. attr,value= geo.cast(data) 
  31. geo.add("",attr,value,visual_range=[0,20], 
  32.  visual_text_color="#fff",symbol_size=20, 
  33.  is_visualmap=True,is_piecewise=True,  
  34.  visual_split_number=4) 
  35.  
  36. geo.render() 

評(píng)論兩極分化相對(duì)嚴(yán)重

獲取到近幾日的網(wǎng)友上萬條評(píng)論數(shù)據(jù)后,我們切換到今天主題,看看網(wǎng)友對(duì)這部電影究竟評(píng)論如何?

我們將數(shù)據(jù)集中的評(píng)論內(nèi)容提取出來,將評(píng)論分詞后制作如下詞云圖:

從詞云中可以看出,排名靠前的熱詞分別是姜文、不錯(cuò)、好看、彭于晏、劇情、看不懂等。

因此可以看出大家對(duì)電影的評(píng)價(jià)還不錯(cuò),同時(shí)估計(jì)還有一大部分粉絲是專門看國民老公彭于晏的裸奔與八塊腹肌的(哈哈哈)。

[[237441]]

至于劇情方面,相對(duì)于《讓子彈飛》,《邪不壓正》用了更“姜文”更癲狂的方式來講了一個(gè)相對(duì)簡(jiǎn)單的故事。

從砰砰砰幾槍打出片名的那一刻起,影片就在一個(gè)極度亢奮的節(jié)奏之下不停向前推進(jìn)著,伴隨著應(yīng)接不暇的戲謔臺(tái)詞,姜文無時(shí)無刻不在釋放自己的任性,太瘋了,甚至有些極端。

對(duì)于普通觀眾來說,太難消化了,上一秒還沒琢磨明白,下一秒又迎來了一個(gè)亢奮且莫名的環(huán)境和臺(tái)詞中(也驗(yàn)證評(píng)論中一部分網(wǎng)友對(duì)劇情看不懂的評(píng)價(jià))。

[[237442]]

詳情代碼如下:

  1. import pickle 
  2. from os import path 
  3. import jieba 
  4. import matplotlib.pyplot as plt 
  5. from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator 
  6.  
  7. comment = [] 
  8. with open('quan.txt',mode='r',encoding='utf-8'as f: 
  9.  rows = f.readlines() 
  10.  for row in rows
  11.    if len(row.split(',')) == 5: 
  12.      comment.append(row.split(',')[4].replace('\n','')) 
  13.  
  14. comment_after_split = jieba.cut(str(comment),cut_all=False
  15.  
  16. wl_space_split= " ".join(comment_after_split) 
  17. #導(dǎo)入背景圖 
  18. backgroud_Image = plt.imread('C:\\Users\\Administrator\\Desktop\\1.jpg')  
  19. stopwords = STOPWORDS.copy() 
  20. #可以加多個(gè)屏蔽詞 
  21. stopwords.add("電影"
  22. stopwords.add("一部"
  23. stopwords.add("一個(gè)"
  24. stopwords.add("沒有"
  25. stopwords.add("什么"
  26. stopwords.add("有點(diǎn)"
  27. stopwords.add("這部"
  28. stopwords.add("這個(gè)"
  29. stopwords.add("不是"
  30. stopwords.add("真的"
  31. stopwords.add("感覺"
  32. stopwords.add("覺得"
  33. stopwords.add("還是"
  34.  
  35. #設(shè)置詞云參數(shù)  
  36. #參數(shù)分別是指定字體、背景顏色、最大的詞的大小、使用給定圖作為背景形狀  
  37. wc = WordCloud(width=1024,height=768,background_color='white'
  38.  mask=backgroud_Image,font_path="C:\simhei.ttf"
  39.  stopwords=stopwords,max_font_size=400, 
  40.  random_state=50) 
  41. wc.generate_from_text(wl_space_split) 
  42. img_colors= ImageColorGenerator(backgroud_Image) 
  43. wc.recolor(color_func=img_colors) 
  44. plt.imshow(wc) 
  45. plt.axis('off')#不顯示坐標(biāo)軸   
  46. plt.show() 
  47. #保存結(jié)果到本地 
  48. wc.to_file('保存路徑'

一星級(jí)影評(píng)占比高達(dá) 20%

圖中可以看出,五星級(jí)比例接近 40%,而一星級(jí)比例與四星級(jí)比例幾乎差不多,幾乎都為 20%。(備注:一星級(jí)數(shù)量等于 1 與 0.5 的總和,以此類推)

很明顯,姜文再次掀起了影評(píng)人和觀眾的論戰(zhàn),盡管姜文對(duì)影評(píng)人并不友好,但影評(píng)人還是愿意去袒護(hù)姜文。

其實(shí),姜文的電影關(guān)鍵在于你期待什么?類型片?姜文拍的從來都不是類型片。

藝術(shù)片?姜文電影里的藝術(shù)不是一遍就可以看懂的。他的電影就是帶著一種“后搖風(fēng)格”,濃烈、生猛。

姜文和觀眾都很自我,姜文端著,不肯向市場(chǎng)低頭;觀眾正是因?yàn)闆]端著,所以看姜文的電影過于疲憊。誰都沒錯(cuò),誰都不用救。

詳情代碼如下:

  1. from pyecharts import ThemeRiver 
  2.  
  3. rate = [] 
  4. with open('quan.txt',mode='r',encoding='utf-8'as f: 
  5.  rows = f.readlines() 
  6.  for row in rows
  7.    if len(row.split(',')) == 5: 
  8.      rate.append(row.split(',')[3].replace('\n','')) 
  9.  
  10. print(rate.count('5')+rate.count('4.5')) 
  11. print(rate.count('4')+rate.count('3.5')) 
  12. print(rate.count('3')+rate.count('2.5')) 
  13. print(rate.count('2')+rate.count('1.5')) 
  14. print(rate.count('1')+rate.count('0.5')) 
  15.  
  16. #餅狀圖 
  17. from pyecharts import Pie 
  18. attr = ["五星""四星""三星""二星""一星"
  19.  
  20. #分別代表各星級(jí)評(píng)論數(shù) 
  21. v1 = [3324,1788,1293,553,1653] 
  22. pie = Pie("餅圖-星級(jí)玫瑰圖示例", title_pos='center', width=900) 
  23. pie.add("7-17", attr, v1, center=[75, 50], is_random=True
  24.        radius=[30, 75], rosetype='area'
  25.        is_legend_show=False, is_label_show=True
  26.  
  27. pie.render() 

關(guān)于《邪不壓正》網(wǎng)友評(píng)論數(shù)據(jù)就分析到此結(jié)束!

你覺得《邪不壓正》不好看是對(duì)的,因?yàn)樗牧?;你若覺得《邪不壓正》好看也是對(duì)的,因?yàn)樗娴奶牧?。成也姜文,敗也姜文!但這也許就是他孤傲的世界吧。

責(zé)任編輯:武曉燕 來源: 自戀習(xí)Python
相關(guān)推薦

2017-11-27 10:18:57

Python短評(píng)sleep

2015-08-14 13:12:20

4G

2023-02-13 13:50:48

研究offer

2021-06-09 07:14:32

數(shù)據(jù)分析互聯(lián)網(wǎng)運(yùn)營大數(shù)據(jù)

2019-12-03 14:08:21

iOS 13蘋果升級(jí)

2018-07-25 13:47:51

彭于晏邪不壓正Python

2023-03-27 13:52:02

海景房主機(jī)桌面

2018-08-22 11:09:33

QLCSSD硬盤

2018-09-05 15:06:00

GTX 1080Ti顯卡NVIDIA

2022-09-15 07:35:28

iOS16iPhone

2017-09-22 12:00:24

Intel8代CPU酷睿處理器

2022-09-07 00:10:11

iOS測(cè)試版系統(tǒng)

2020-09-17 09:22:50

iOS 14iPad OS 14蘋果

2021-05-08 23:26:32

大數(shù)據(jù)薪資工作

2020-02-29 16:00:20

代碼開發(fā)程序員

2018-08-27 09:39:33

租房數(shù)據(jù)北漂

2017-08-21 10:05:57

Python影評(píng) 爬蟲

2018-07-22 15:57:00

數(shù)據(jù)可視化大數(shù)據(jù)數(shù)據(jù)分析

2009-02-01 15:16:28

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)