豆瓣電影資料分析和視覺化

張巨集倫發表於2016-11-19

1 專案描述

豆瓣電影上提供的電影資料為例,完整地展示網路資料從獲取、處理到分析、視覺化這一過程,純當練手,也為感興趣的小夥伴提供相關的技術介紹。專案程式碼託管在Github上,視覺化網站請訪問這裡

豆瓣電影資料分析和視覺化

2 資料獲取

用python寫爬蟲,Scrapyurllib2都是比較好的選擇,由於我對功能的要求比較簡單,故選擇後者即可。

在豆瓣電影上通過Chrome開發工具找到資料請求API,接下來就可以寫程式碼爬一些電影資料了,我使用的是這兩個API:

  1. movie.douban.com/j/search_ta…
  2. movie.douban.com/j/search_su…

第一個API是獲取所有電影的分類即tag,第二個是請求某個tag下偏移為page_start的page_limit條電影資料,包括電影的標題、url、評分等資訊。

有了電影的url,再次爬取該頁面對應的html內容, 然後用Beautiful Soup解析出想要的欄位就好了。最終一共獲取了4587條電影記錄,每條記錄包含以下15個欄位:電影ID、標題、連結、縮圖、評分、導演、編劇、演員、分類、上映國家、語言、上映時間、時長、別名和簡介。

3 資料清洗

這一步主要是為了提高資料質量和配合後續的工作,對獲取的資料進行一些清洗和預處理工作。比如將欄位裡多餘的空白去掉、將上映時間僅保留年份、將時長處理為以分鐘為單位的整數等,下圖是同一條電影資料在清洗前後的對比。

豆瓣電影資料分析和視覺化

4 資料分析

最基本的分析包括一些統計量的計算,說白了就是固定或以某一個欄位分類,對另一個欄位進行求和或求平均。我的主要分析欄位是電影數量和平均評分,看它們和電影分類、語言、上映國家、上映時間、時長等其他欄位之間有何關聯。

5 資料視覺化

俗話說,“一圖勝千言”,所以資料分析的結果以視覺化網站的形式給出。我用Flask搭建了一個簡單的網站,用Echarts繪製了一些簡單的圖示來展示分析的結果,視覺化網站請訪問這裡

網站包含三個子選單:統計、評分、搜尋。“統計”展示了和電影數量相關的分析結果,“評分”展示了和電影評分相關的分析結果,“搜尋”則提供了一個簡單的基於關鍵詞匹配的搜尋功能。它們看起來大概是這個樣子:

豆瓣電影資料分析和視覺化

豆瓣電影資料分析和視覺化

豆瓣電影資料分析和視覺化

6 總結

這次開發任務主要出於個人興趣,順便拋磚引玉地和大家介紹一些基本的方法和技術。網路上可以獲取的資料不計其數,只要腦洞開得夠大,在資料來源、分析技術、視覺化方法上進一步提升,就一定可以創造出更有意義和價值的成果。

如果覺得文章不錯,不妨點一下左下方的喜歡~

相關文章