蔡文樂 周晴晴 劉玉婷 秦立靜
摘? 要:利用Python網(wǎng)絡(luò)爬蟲技術(shù)對豆瓣熱度較高的電影《你好,李煥英》的影評數(shù)據(jù)進行了爬蟲分析,根據(jù)爬蟲所得到的影評數(shù)據(jù)信息,制作了影評詞云圖,通過數(shù)據(jù)可視化技術(shù),對影評分數(shù)分布、評論數(shù)量與時間的關(guān)系,以及評論數(shù)量與城市分布的關(guān)系進行了相關(guān)的分析研究,從而直觀地展示了電影上映后觀眾的觀影感受,同時也為其他用戶提供了些許觀影參考。
關(guān)鍵詞:Python;爬蟲;影評;可視化
中圖分類號:TP391.1 文獻標識碼:A 文章編號:2096-4706(2021)18-0086-05
Abstract: The Python web crawler technology is used to make the crawler analysis to the film review data of the film Hello, Li Huanying with high popularity of Douban. According to the film review data information obtained by the crawler, the cloud map of film review words is made. Through the data visualization technology, the distribution of film review scores, the relationship between the number of reviews and time, and the relationship between the number of reviews and urban distribution are analyzed and studied, so as to intuitively show the audiences viewing experience after the film is released, and also provide some viewing references for other users.
Keywords: Python; crawler; film review; visualization
0? 引? 言
國內(nèi)電影市場增長迅速,中國已成為世界第二大電影市場,并在不斷縮小與北美市場的差距,電影業(yè)迸發(fā)出強勁活力[1]。如今,觀眾觀看影視作品更加注重選擇符合自己的價值觀,電影制作有新意、有意義的電影,而不選擇單純博人眼球,利用流量明星賺取票房的電影。豆瓣電影作為中國最大的電影分享與評論社區(qū),可提供最新的電影介紹及相關(guān)評論,并根據(jù)個人喜好,向用戶推薦電影,同時,用戶也可以根據(jù)電影的打分和影評選擇是否觀看一部電影,所以,對大量的影評數(shù)據(jù)進行深入分析,了解大眾對電影的態(tài)度以及電影本身的特色,為觀影者提供正確的導向是非常有意義的。在現(xiàn)在各種資源充斥的時代,有些電影人們一致認為他的質(zhì)量有待提高,但是仍然會有少數(shù)的人選擇去觀看,利用網(wǎng)絡(luò)數(shù)據(jù)爬蟲,可獲取到更加真實、全面的、有價值的數(shù)據(jù)信息[2]。
互聯(lián)網(wǎng)的快速發(fā)展,迎來了一個關(guān)于大數(shù)據(jù)的嶄新時代,每個人的一切都關(guān)乎著各種各樣的數(shù)據(jù),而且人們也越來越注重數(shù)據(jù)所帶來的價值。如今,萬維網(wǎng)已成為大量信息的有效載體,可是對有效信息的提取和利用卻成為了一個巨大的挑戰(zhàn)。利用網(wǎng)絡(luò)爬蟲技術(shù),通過網(wǎng)站所允許的合法途徑,我們可以方便快捷地獲取到目標網(wǎng)頁的數(shù)據(jù),從而對獲取到的數(shù)據(jù)進行分析研究,挖掘出數(shù)據(jù)背后的價值。
本文基于Python語言,結(jié)合網(wǎng)絡(luò)爬蟲技術(shù),對當下熱門電影《你好,李煥英》的影評數(shù)據(jù)進行數(shù)據(jù)爬取,并通過數(shù)據(jù)可視化技術(shù),對影評中有價值的數(shù)據(jù)信息進行分析研究,直觀地展示出觀影者對熱映電影最真實的感受。
1? 網(wǎng)絡(luò)爬蟲原理
網(wǎng)絡(luò)爬蟲技術(shù)實際上就是一種互聯(lián)網(wǎng)處理數(shù)據(jù)的機器人,它通過爬取互聯(lián)網(wǎng)上網(wǎng)站上的內(nèi)容來工作,采用計算機編寫的語言或者腳本,有既定的目標,有選擇地去訪問網(wǎng)頁,并建立鏈接,自動地從網(wǎng)頁上爬取所需要信息。網(wǎng)絡(luò)爬蟲,是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本,可以自動采集所有其能夠訪問到的頁面內(nèi)容[3]。爬蟲是從一個或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件,可以抓取在不同URL之下的各種文章,鏈接和圖片等,是一個從web上自動下載網(wǎng)頁的計算機程序[4]。爬蟲的基本過程可以分為四步:向服務(wù)器發(fā)出請求,腳本通過 HTTP庫向目標站點發(fā)出Request請求,請求的內(nèi)容可包含headers等信息,等待對方服務(wù)器響應(yīng);獲取響應(yīng)內(nèi)容,得到一個包括爬取頁面內(nèi)容的Response,然后進行下一步的數(shù)據(jù)解析[5];解析數(shù)據(jù)內(nèi)容,響應(yīng)中所包含的內(nèi)容可能有多種形式,可使用直接處理、正則表達式、爬蟲的解析庫等方法進行解析;保存所需數(shù)據(jù),將數(shù)據(jù)保存至任何特定格式的文件或文本中,也可保存至數(shù)據(jù)庫或表格中[6]。
2? 獲取影評數(shù)據(jù)
2.1? 網(wǎng)頁源碼抓取
本文選取最近上映的,熱度較高的電影《你好,李煥英》進行數(shù)據(jù)的爬取。通過目標網(wǎng)址https://movie.douban.com/subject/34841067/comments進入豆瓣電影《你好,李煥英》的影評界面。通過分析URL發(fā)現(xiàn),每個subject/后面都有一個固定的數(shù)字代表某一部特定的電影,34841067代表的電影就是《你好,李煥英》?;趐ython的selenium庫模擬瀏覽器操作的方法,找到相應(yīng)的網(wǎng)址頁面,將網(wǎng)頁和網(wǎng)頁內(nèi)容進行分離,抓取網(wǎng)頁源碼,提取其中的關(guān)鍵信息,將抓取后的數(shù)據(jù)存放在數(shù)據(jù)庫或者表格文件中。通過Chrome瀏覽器的開發(fā)者工具,就可以看到源代碼,如圖1所示。gzslib202204051159網(wǎng)頁源碼抓?。?/p>
from selenium import webdriver
import pandas as pd
url = ‘http://movie.douban.com/subject/34841067/comments?ststus=p
drive = webdriver.chrome()
drive.get(url)
如圖2所示。
2.2? Xpath解析網(wǎng)頁數(shù)據(jù)
Xpath采用類似于正則表達式來匹配HTML文件中的內(nèi)容,其中的謂語用來查找某個特定的節(jié)點或者包含某個特定值的節(jié)點,對一些函數(shù)進行模糊搜索。使用路徑表達式來選取XML文檔中的節(jié)點或者節(jié)點集,節(jié)點是通過路徑(path)或者步(steps)來選取的。通過解析代碼找到用戶的信息,評分,發(fā)布時間,短評等相關(guān)內(nèi)容,如圖3所示。
從網(wǎng)頁源碼中提取的數(shù)據(jù)(主要有用戶的短評、好評差評,以及電影的評分、觀影者的居住城市、評論時刻的變化情況),以csv格式的文件存儲,爬取的數(shù)據(jù)如圖4所示。
部分代碼為:
names=dom.xpath('//div[@class="comment-item "]//span[@class="comment-info"]/a/text()')#獲取用戶名信息
ratints=dom.xpath('//div[@class="comment-item "]//span[@class="comment-info"]/span[2]/@class')#評分
times=dom.xpath('//div[@class="comment-item "]//span[@class="comment-info"]/span[@class="comment-time "]/@title')#評論發(fā)布時間
messages=dom.xpath('//div[@class="comment-item "]/div[@class="comment"]//span[@class="short"]/text()')#短評正文
user_url=dom.xpath('//div[@class="comment-item "]//span[@class="comment-info"]/a/@href')#用戶主頁網(wǎng)址
votes=dom.xpath('//div[@class="comment-item "]/div[@class="comment"]//span[@class="votes"]/text()')#贊同數(shù)量
3? 數(shù)據(jù)可視化
3.1? 影評詞云圖
數(shù)據(jù)可視化主要是借助圖形化的手段,直觀地傳達關(guān)鍵的內(nèi)容與特征,從而實現(xiàn)對數(shù)據(jù)的深入洞察和分析了解。詞云圖由頻繁出現(xiàn)的詞匯組成類似云的彩色圖形,用于展示大量的電影熱評的文本數(shù)據(jù)。借助Python的jieba庫獲取關(guān)于影評內(nèi)容的中文分詞,然后再根據(jù)爬取到的評分數(shù)據(jù),得到如圖5所示的詞云圖。
《你好,李煥英》是一部親情題材的喜劇電影,以賈玲回憶母親為主線,電影上映后,引起了許多觀眾的共鳴。通過圖5的影評詞云圖可以看到,關(guān)鍵詞就是“媽媽”“賈玲”“女兒”等,而這些熱點詞匯也和電影的主題相契合。圖5中還出現(xiàn)“煽情”等詞匯,由此可見,觀眾的觀影感受不盡相同,對電影的喜愛程度也不同。
詞云圖繪制部分代碼為:
def my_word_cloud(data=None,stopWords=None,img=None)
datacut = data.apply(jieba.lcut)
data.After = dataCut.apply(lambda x:[i for i in x if i not in stopWords])
wordFre = pd.Series(_flatten(list(dataAfter))).value_counts()
mask = plt.imread(img)
wc.fit_word(wordFre)
plt.imshow(wc)
plt.axis(‘off)
3.2? 評分分數(shù)分析
從爬取到的數(shù)據(jù)中取出評分數(shù)據(jù),對其進行統(tǒng)計,并繪制餅圖,如圖6所示。從餅圖的評分分數(shù)分布來看,來自北京的觀眾對《你好,李煥英》電影的支持度最高,其次是江蘇南京,其他各地區(qū)觀眾的評分都相差不大??傮w來說,這部電影的評分還是很高的,說明觀眾對整部電影的認可度還是比較高的,由此可以看出人們喜好還是更加傾向于此類電影。
分析用戶評論與評論發(fā)表日期之間的關(guān)系,如圖7所示,可以直觀的看到,評論的數(shù)量隨著時間的推移逐漸減少,而評論數(shù)量的高峰期就是在電影的上映時間2021年2月12日左右,之后逐漸變緩慢,這也和現(xiàn)實相吻合,在電影剛上映的時候,觀眾的新鮮感比較強,之后,隨著時間的推移,關(guān)注度逐漸降低,影評數(shù)量也隨之減少。
分析評論數(shù)量與時間關(guān)系的部分代碼為:
Num=pd.to_datatime(data[‘發(fā)表時間]).apply(lambda x: x,hour).value_counts()
Num=num.sort_index()
plt.plot(range(len(num)),num)
plt.xticks(range(len(num)),num.index)
plt.title(‘評論數(shù)量隨時間的變化情況)
plt.grid()
3.3? 評論數(shù)量與城市分布分析
隨著觀影選擇和影片類型的日益增多,觀眾慢慢形成了自己的一些觀影習慣,電影市場也早已不是“全國上下一盤棋”,各地觀眾的觀影口味早已出現(xiàn)了分化,電影行業(yè)的地域差異也越來越顯著。通過統(tǒng)計每個城市觀影者發(fā)布的評論數(shù)量,繪制出評論數(shù)量最多的十個城市,如圖8所示,發(fā)布評論數(shù)量最多的城市是北京,其次是上海,其他各城市發(fā)布的評論數(shù)量基本持平。圖8也反映出在電影類型、影片風格方面,觀影者的需求差異比較大,同一部影片在各個地區(qū)的活躍程度不盡相同。
4? 結(jié)? 論
本文基于Python編程語言,以豆瓣電影《你好,李煥英》為爬取目標,完成了對影評數(shù)據(jù)的爬取和分析,并使用可視化方法展示了影評詞云圖、評分分數(shù)分布、評論數(shù)量與時間及分布城市的關(guān)系,通過這些數(shù)據(jù)的提取,全面挖掘了影評背后的關(guān)鍵信息,為電影行業(yè)研究觀眾的喜好和電影行業(yè)的發(fā)展提供了參考。
參考文獻:
[1] 辛雨璇,王曉東.基于文本挖掘的電影評論情感分析研究 [J].牡丹江師范學院學報(自然科學版),2021(1):25-28.
[2] 高雨菲,毛紅霞.基于Python的豆瓣影視短評的數(shù)據(jù)采集與分析 [J].現(xiàn)代信息科技,2020,4(24):10-12+16.
[3] 黃蓉,毛紅霞.基于豆瓣網(wǎng)某系列電影數(shù)據(jù)采集與可視化分析 [J].現(xiàn)代信息科技,2020,4(23):4-7.
[4] 黃子豪,張舒.網(wǎng)絡(luò)爬蟲對互聯(lián)網(wǎng)安全的影響及“反爬”策略的研究 [J].科學技術(shù)創(chuàng)新,2021(10):120-121.
[5] 簡悅,汪心瀛,楊明昕.基于Python的豆瓣網(wǎng)站數(shù)據(jù)爬取與分析 [J].電腦知識與技術(shù),2020,16(32):51-53.
[6] 成文瑩,李秀敏.基于Python的電影數(shù)據(jù)爬取與數(shù)據(jù)可視化分析研究 [J].電腦知識與技術(shù),2019,15(31):8-10+ 12.