##1 項目描述##html
以豆瓣電影上提供的電影數據爲例,完整地展現網絡數據從獲取、處理到分析、可視化這一過程,純當練手,也爲感興趣的小夥伴提供相關的技術介紹。項目代碼託管在Github上,可視化網站請訪問這裏。python
##2 數據獲取##git
用python寫爬蟲,Scrapy和urllib2都是比較好的選擇,因爲我對功能的要求比較簡單,故選擇後者便可。github
在豆瓣電影上經過Chrome開發工具找到數據請求API,接下來就能夠寫代碼爬一些電影數據了,我使用的是這兩個API:網絡
第一個API是獲取全部電影的分類即tag,第二個是請求某個tag下偏移爲page_start的page_limit條電影數據,包括電影的標題、url、評分等信息。echarts
有了電影的url,再次爬取該頁面對應的html內容, 而後用Beautiful Soup解析出想要的字段就行了。最終一共獲取了4587條電影記錄,每條記錄包含如下15個字段:電影ID、標題、連接、縮略圖、評分、導演、編劇、演員、分類、上映國家、語言、上映時間、時長、別名和簡介。scrapy
##3 數據清洗##工具
這一步主要是爲了提升數據質量和配合後續的工做,對獲取的數據進行一些清洗和預處理工做。好比將字段裏多餘的空白去掉、將上映時間僅保留年份、將時長處理爲以分鐘爲單位的整數等,下圖是同一條電影數據在清洗先後的對比。開發工具
##4 數據分析##網站
最基本的分析包括一些統計量的計算,說白了就是固定或以某一個字段分類,對另外一個字段進行求和或求平均。個人主要分析字段是電影數量和平均評分,看它們和電影分類、語言、上映國家、上映時間、時長等其餘字段之間有何關聯。
##5 數據可視化##
俗話說,「一圖勝千言」,因此數據分析的結果以可視化網站的形式給出。我用Flask搭建了一個簡單的網站,用Echarts繪製了一些簡單的圖標來展現分析的結果,可視化網站請訪問這裏。
網站包含三個子菜單:統計、評分、搜索。「統計」展現了和電影數量相關的分析結果,「評分」展現了和電影評分相關的分析結果,「搜索」則提供了一個簡單的基於關鍵詞匹配的搜索功能。它們看起來大概是這個樣子:
##6 總結##
此次開發任務主要出於我的興趣,順便拋磚引玉地和你們介紹一些基本的方法和技術。網絡上能夠獲取的數據不可勝數,只要腦洞開得夠大,在數據源、分析技術、可視化方法上進一步提高,就必定能夠創造出更有意義和價值的成果。