爬取貓眼評論,分析《阿麗塔:戰鬥天使》

文章首發於慕課網

日本漫畫《銃夢》改編電影《阿麗塔:戰鬥天使(Alita: Battle Angel)》於2019年2月22日在中國大陸上映了。近幾天,網上對於這部電影的分析評論也很多,今天通過貓眼電影上的評論粗淺地看一下大衆對這部科幻電影的評價。
在這裏插入圖片描述

工具庫

  • jieba
  • pyecharts
  • wordcloud
  • matplotlib

分析網站

通過在瀏覽器模擬移動端請求評論的數據,可以看到隨着頁面的更改url並沒有發生變化,初步判斷該網頁是通過js加載的。通過多次的實踐,找到了請求返回的真實url和關鍵參數,這裏返回的是json格式的數據,裏面有我們需要的信息。
在這裏插入圖片描述

通過比較多次請求信息,發現以下的參數
在這裏插入圖片描述

其中,offset是每次請求的起始評論條數;limit是每次請求的條數;ts我猜測應該是時間戳,不用管它

抓取信息

通過返回的json數據,選取其中的content,score,nick ,gender這四個參數,將這些信息寫入一個文本中保存起來。
在這裏插入圖片描述

    def get_comments(self):
        '''
        爬取評論信息
        :return:
        '''
        for i in range(0, 14352, 15):
            URL = self.url.format(i)
            data = requests.get(url=URL, headers=self.header)
            time.sleep(random.random() * 3)
            com = json.loads(data.text)
            comments = com['data']['comments']
            if comments:
                for item in comments:
                    data = {
                        'content': item['content'],
                        'score': item['score'],
                        'nick': item['nick'],
                        'gender': item['gender'],
                    }
                    print(data)
                    # 存入文本中
                    with open('comments.txt', 'a+', encoding='UTF-8') as file:
                        file.writelines(
                            json.dumps(data, ensure_ascii=False) + '\n')
            else:
                break

數據分析

由於爬取的數據都是比較規整,並且沒有選擇太多的特徵,所以就跳過清洗階段,直接進行分析。爲了便於觀察,這裏使用pyecharts進行可視化處理。

1. 評論詞雲

通過詞雲,能夠一目瞭然地知道這些精選評論都說了些什麼。由於使用pyecharts製作詞雲需要比較繁瑣的處理,所以直接使用jieba分詞並用WordCloud進行製作詞雲。

def get_wordcloud(self):
        '''
        製作詞雲圖
        :return:
        '''
        text = self.get_context()
        seg_list = jieba.cut(text, cut_all=True)
        wc = WordCloud(background_color="#CCC",  # 設置背景顏色
                       # mask = pic , #設置背景圖片
                       max_words=2000,  # 設置最大顯示的字數
                       margin=5,
                       font_path="C:\\Windows\\Fonts\\STFANGSO.ttf",  # 不加這一句顯示口字形亂碼
                       max_font_size=80,  # 設置字體最大值
                       random_state=40,  # 設置有多少種隨機生成狀態,即有多少種配色方案
                       )
        w1 = "/ ".join(seg_list)  # 全模式
        mword = wc.generate(w1)
        plt.imshow(mword)
        plt.axis("off")
        plt.savefig('wordcloud.png')  # 保存圖片
        plt.show()

在這裏插入圖片描述

可以看到,“好看”,“特效”,“第二部”,“劇情”,這幾個詞都是出現比較多次的,再通過去原來保存評論信息的文本中查詢,這些詞的整個評論,我發現很多人都是在說電影沒有結局,或者期待出第二部的。

2.性別比例

由於爬取到的性別都是使用數字0,1,2進行標識的,所以按照程序員的思維。我就用 0代表男,1代表女,2代表未知來進行處理了。
在這裏插入圖片描述

從圖中可以看出,評論以男性居多,約佔總數的50%,估計是男同胞們對這類比較抽象,充滿想象的電影比較感興趣吧~

3.評分情況

從貓眼的總評分9.0來看,這部電影還是比較不錯的,截止2月24日已經在中國拿下了39510萬元的票房。

在這裏插入圖片描述

通過上圖,可以清楚地看到,大部分的評分都是8-10分的,所以總評的9.0也是有依據的。

最後

雖然這部電影一些的情節都沒有介紹清楚,但是很多的戰鬥細節都用特效展現的淋漓盡致。據說全片特效渲染動用了30000臺電腦,總耗時4.32億小時,這也是國內的“五毛錢”特效所不能比擬的。

最後來看下這部片的女主吧!

在這裏插入圖片描述

源碼地址:https://github.com/stormdony/python_demo/tree/master/MaoYan_Alita_Battle_Angel

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章