999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于python的豆瓣電影數據采集與分析可視化

2021-09-17 04:53:54張荑陽毛紅霞
電子制作 2021年16期
關鍵詞:可視化

張荑陽,毛紅霞

(四川大學錦城學院,四川成都,611731)

0 引言

網絡爬蟲,又被稱為網頁蜘蛛或者網絡機器人,是指按照某種規則從網絡上自動爬取用戶所需內容的腳本程序。[1]本文借助爬蟲技術探究目前國內影視業存在的一種“爛片高票房”的現象,以《小時代系列》電影為例,旨在了解這部電影有哪些元素吸引了觀眾,以及觀眾對這部電影的評論看法,進而分析大眾對此類影片的態度。

實現電影短評數據采集后進行數據清洗和預處理,可視化部分運用WordCloud詞云庫結合matplotlib庫繪制詞云圖、餅圖和條形圖。利用餅圖來分析評分等級,繁冗的文字數據就被圖形替代,能更直觀看到大眾對電影的評分等級分布[1]。使用詞云圖分析,能在頻數統計的基礎上,更加美觀地展示數據,對于重點詞語有更重點的突出展示。

1 爬蟲算法設計

■1.1 相關技術

(1)Xpath庫,本文解析網頁的主要辦法,通過request庫獲取網頁數據后,利用Xpath解析四部電影的節點和劇名。它提供了十分簡潔明了的路徑選擇表達式,基本所有定位的節點可用通過Xpath來選擇。

(2)selenium庫,Selenium WebDriver是開源API的集合,可以用于自動測試Web應用程序,并可以在大多數Web瀏覽器上運行,在爬蟲中也有著很好的應用[2]。本文通過selenium自動化模擬登陸操作,與豆瓣網站建立聯系。

(3)multiprocessing.dummy庫,導入Pool模塊,以相同API實現多線程爬取四部電影的熱門短評,借助Pool.map()實現線程順序執行,提高了算法的運行效率。

(4)wordcloud庫,一款展示詞云圖的第三方庫,以詞語為基本單位,當某一個詞語的詞頻越高時,展示在詞云圖中的該詞語顯示越大。

(5)jieba庫,一款用來實現分詞的第三方庫,其語料基于人民日報,冗余度較低,返回中文文本分詞后的列表變量,支持三種分詞模式:精確模式,全模式,搜索引擎模式。本文主要使用lcut()精確分詞模式并導入自定義文檔來對短評內容做中文文本分析。

(6)matplotlib.pyplot庫,pyplot 子模塊提供 bar()函數和pie()函數分別繪制條形圖和餅圖,還提供show()函數顯示正在處理的當前圖形。

■1.2 應對反爬蟲策略

(1)使用代理IP,豆瓣網站在爬蟲程序頻繁發起請求后會采取封號策略,除了更換WiFi網絡,還可以使用代理IP,給request.get()方法內添加proxies參數。

(2)selenium模擬登陸,完成登陸操作后借助request.Session()記錄登陸狀態。

(3)使用time庫中的sleep函數,進行強制休眠,在selenium登入時模擬用戶的點擊延時行為。經多次測試,該方法可以有效地應對豆瓣網站的反爬蟲策略。

(4)偽裝User-Agent,User agent是HTTP協議的中的一個字段,其作用是描述發出HTTP請求的終端的一些信息,通過編寫請求頭headers,寫入瀏覽器UA,設置操作系統為“Windows NT 6.1;Win64;x64”,向豆瓣網站發送帶headers參數的GET請求。

■1.3 selenium庫模擬瀏覽器操作登陸

依托于聚焦網絡爬蟲技術,對網頁的數據內容進行抓取與分析,可以快速過濾掉與主題無關的URL地址[3]。利用聚焦網絡爬蟲技術,通過獲取初始URL,依據搜索策略來確定下一步爬取所需的URL,過濾與爬取目標無關的鏈接,需要將已爬取的URL地址存入到一個URL列表中,用以判定爬取的進程和避免重復爬取。具體實現通過按鍵f12打開Chrome開發者工具審查元素,找到需要定位的元素,右鍵復制xpath路徑。登陸界面網址的獲取則需要通過網絡面板(Network)記錄的操作信息進行提取。

在已安裝Chromedriver.exe的前提下使用Selenium庫完全模擬瀏覽器的操作,模擬用戶登陸、點擊、下拉、切換窗口等一系列操作,此處導入time包采用休眠的方式強制等待,首先獲取登入界面的url“https://accounts.douban.com/passport/login”通過Xpath方式定位賬號密碼方式登陸選項,使用click()方法點擊選擇,再進行對賬號框和密碼框以及提交信息按鈕的元素定位,使用send_keys()方法傳入賬號和密碼,點擊觸發登陸成功事件。在未登錄豆瓣賬號的情況下,翻頁行為上限為10次,每頁20條評論,爬取結果限制在200條,而登陸狀態下翻頁則不受到限制。

■1.4 Xpath解析網頁

通過分析電影短評界面的URL變化,掌握翻頁規律,在進行翻頁操作時,網頁URL更改的部分是從“?”到“#”之間的參數部分,參數間以“&”作為分隔符,為爬取影評所需的搜索部分、查詢部分。

短評第一頁URL參數部分:start=20&limit=20&statu s=P&sort=new_score

短評第二頁URL參數部分:start=40&limit=20&statu s=P&sort=new_score

每一次翻頁操作后,start增加20,每頁僅顯示20條短評,在代碼中以format格式化函數實現:'start={}&limi t=20&status=P&sort=new_score'.format(page*20)

使用xpath中的@href和text()表達式分別定位四部電影節點下的對應鏈接和電影劇名,存為字典類型,創建4個線程順序爬取4步電影的短評內容。

■1.5 文本數據清洗和數據預處理

篩選電影短評中的“熱門”標簽,以分析URL變化規律的方式順序采集數據,爬取到的目標短評數據一共2000行,4列,列名分別為code、host、grade、content。第一列“code”是對每一行數據進行編號,為int類型,第二列“host”是短評人的用戶名,第三列“grade”是電影的評分等級,其評分等級只有六種數據:很差、較差、還行、推薦、力薦和NULL,第四列“content”是短評內容,為文本數據。

數據清洗,從概念上講是基于目標數據,通過采用不同的數據檢測、審查、處理、校驗方法,實現數據糾錯,清除原數據中“臟”的信息,如一些統計調查中的無效值、缺失值、重復數據、異常數據等。[4]其中評分等級和短評內容是本文可視化分析的基本數據,需要進行文本數據清洗,去除空值等無效評論。使用codecs模塊指定以utf-8編碼方式打開短評文件,使用codecs.open()方法讀取文件內容時候,會自動轉換為內部的unicode,一般情況下不會出現編碼轉換失敗讀取錯誤的問題[2]。

為了更精準地展示詞云圖和直方圖,另創自定義文檔,內容是電影特定名詞例如“郭敬明、楊冪、陳學冬”等電影人物名字,使用jieba.load_userdict()加載自定義文檔,利用jieba庫lcut()來實現對句子的最高精度劃分,從分詞結果中剔除例如“我們”,“你們”,“因為”,“所以”,“這個”,“那個”等代詞、冠詞、連詞這類語法型詞匯,再借助collections模塊Counter()方法實現詞頻及常用詞頻度統計,詞頻統計結果存為txt文檔,便于可視化模塊使用。

2 爬取結果可視化

■2.1 詞云圖繪制

使用wordcloud庫和imageio融合圖形圖片繪制詞頻統計詞云圖,以劇中四位主角剪影做為背景圖形繪制詞云圖,來展示觀影者對四部電影的評價,首先導入詞云背景圖,設置詞云圖能顯示的最大顯示單詞數為1000,指定顯示字體,設置畫布大小,關閉橫縱坐標顯示,保存為PNG格式的圖片文件。詞云圖繪制結果如圖1所示。

圖1 電影短評詞云圖

■2.2 餅圖繪制

餅圖的繪制主要使用到了matplotlib中的基礎繪圖pie()方法,按照列表名索引方式提取短評數據中的評分等級列,使用列表生成式對評分等級列中非空值的出現次數進行計數統計:list=[grade.value_counts()[i] for i in range(5)]并存為列表變量。傳入統計數據值和統計數據標簽,pie()方法中傳入參數autopct="%1.2f%%"自動計算百分比,設置shadow=True陰影顯示和explode突出顯示比重最大的評分等級來實現圖像優化,添加標簽值,保存餅圖為PNG格式的圖片文件。餅圖繪制結果如圖2所示。

圖2 電影評分等級餅圖

■2.3 條形圖繪制

根據詞頻統計結果以繪制條形圖的模式[3],得到更清晰、明了的詞頻統計結果。使用matplotlib的子模塊pyplot中的bar()方法繪制條形圖,首先設置圖標跨行跨列,以split()方法以空格作為分隔符切割詞語與頻數,分別存入已定義的列表中。再以切片的方式提取詞頻統計結果前20項詞語,顯示透明度設置為0.8,設置標題和坐標軸名稱字體大小,同樣保存為PNG格式的圖片文件。詞頻條形圖繪制結果如圖3所示。

圖3 詞頻條形圖

■2.4 可視化結果分析

系列電影《小時代》是由郭敬明執導,楊冪、柯震東、郭采潔、郭碧婷等領銜主演的青春時尚都市電影。同時該電影也是導演郭敬明同名小說的改編作品,小說讀者基數大,有部分小說閱讀者同時也是電影觀影者。前20項高頻詞語中,郭敬明、顧里、楊冪和四娘這類人名詞語出現次數較多。觀影評分很差和較差比重最大,其次是推薦和力薦。

根據餅圖展示結果,大部分觀影者對于該系列電影的評價偏向負面,近半觀影者給出最低評價“很差”,電影整體評分較低。由詞云圖結果和條形圖結果顯示,電影的明星效應和改編自知名小說這兩個特性對大眾有一定吸引力,觀影者對于電影選角、演員演技和電影劇情有偏好和選擇,系列電影《小時代》的劇情不能滿足部分觀影者的需求。

3 結語

本文基于豆瓣網站《小時代系列》電影短評,利用python中的selenium庫實現了模擬登陸、Xpath模塊解析網頁、request庫構造請求、jieba庫分詞等爬蟲技術。介紹了算法的具體設計流程,詳細描述了數據可視化部分,并展示結果。使用了多線程對爬取需要翻頁的短評內容進行運行速度的提升。本次對豆瓣網站系列電影《小時代》的爬取實現,證明了網絡規則越來越規范,便利了爬蟲獲取數據,爬蟲可以簡單快速地實現多種任務,它擁有更加廣闊的應用前景[4]。若目標是更全面地分析大眾對該類影片的看法,可根據本文使用的爬蟲方法擴大爬取廣度,采集同類標簽影片的評論數據和評分數據,以及加深爬取深度,分析受眾人群特征,實現更全面的分析。

猜你喜歡
可視化
無錫市“三項舉措”探索執法可視化新路徑
基于CiteSpace的足三里穴研究可視化分析
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
三維可視化信息管理系統在選煤生產中的應用
選煤技術(2022年2期)2022-06-06 09:13:12
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
可視化閱讀:新媒體語境下信息可視化新趨勢
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
主站蜘蛛池模板: 免费一级无码在线网站| 国产欧美日韩资源在线观看| 亚洲国产黄色| 久久久无码人妻精品无码| 91久久夜色精品国产网站| 好紧太爽了视频免费无码| 九九热精品在线视频| 国产91全国探花系列在线播放| 乱人伦视频中文字幕在线| 在线观看无码av免费不卡网站 | 中文字幕亚洲乱码熟女1区2区| 一级毛片基地| 久久伊人操| 日韩精品成人网页视频在线| 99在线视频免费| 国产日本欧美在线观看| 这里只有精品在线播放| 波多野衣结在线精品二区| 福利国产微拍广场一区视频在线| 国产大全韩国亚洲一区二区三区| 国产成人久久综合一区| 日韩免费中文字幕| 性网站在线观看| 国产尤物视频网址导航| 国产成人综合久久| 欧美亚洲欧美| 成人一级黄色毛片| 国产美女精品人人做人人爽| 青青草原国产| 日本成人一区| 国产美女在线观看| 亚洲 欧美 日韩综合一区| 亚洲日韩Av中文字幕无码| 欧美高清日韩| 久久久91人妻无码精品蜜桃HD | 99ri精品视频在线观看播放| 亚洲AV无码一二区三区在线播放| 亚洲高清资源| 青青草91视频| 国产系列在线| 国产精品亚洲一区二区三区在线观看| 激情综合五月网| 日韩精品成人在线| 亚洲中文字幕精品| 欧美激情首页| 找国产毛片看| 国产精品区视频中文字幕| 播五月综合| 婷婷午夜影院| 久久婷婷五月综合97色| 国产激情第一页| 91精品啪在线观看国产91九色| 国产麻豆精品在线观看| 国产午夜一级毛片| 亚洲精品爱草草视频在线| 乱系列中文字幕在线视频| 国产精品久久精品| 亚洲一区色| 亚洲中文字幕久久精品无码一区| 日本午夜视频在线观看| 日本在线亚洲| 欧美在线黄| 国产亚洲高清视频| 国产一级妓女av网站| 亚洲精品无码专区在线观看| 天堂岛国av无码免费无禁网站| 99久久精品美女高潮喷水| 亚洲精品无码高潮喷水A| 国产欧美高清| 91福利在线观看视频| 午夜无码一区二区三区在线app| 国产91特黄特色A级毛片| 日韩高清在线观看不卡一区二区| 久久精品最新免费国产成人| 国产福利影院在线观看| 狠狠干欧美| 都市激情亚洲综合久久| 少妇人妻无码首页| 国内精品久久久久鸭| 日韩高清欧美| 亚洲中久无码永久在线观看软件| 亚洲国产精品一区二区第一页免|