第三章 研究方法
3.7 編寫代碼
寫的的 IPO 的過程,即輸入信息為 input,處理信息為 process,輸出結果為 output。數據爬取和分析也可以看做是一個 IPO 過程,編寫數據採集當做一 個從採集到輸入的一體過程,即通過代碼編寫讓計算機自動爬取存儲數據, 要單獨安裝需要的協力廠商庫,如 Requests 庫、Beautiful Soup 庫、Selenium 庫、Jieba 庫等才能避免程式報錯。 運行,讓被訪問對象認為你是真正的用戶在操作,其支持 IE(7, 8, 9, 10, 11),Mozilla Firefox,
Safari,Google Chrome,Opera 等瀏覽器,本文選擇 Google Chrome。
理和描述的處理動作,除了常規庫的引用,還需引入 Pandas 庫 11協助。可以 理解 Pandas 庫是一個免費開源的,內置大量庫和一些標準的數據模型的協 力廠商庫,可服務 Python,為其提供高效、操作大型數據的工具。其具有許 多快速便捷地處理數據的函數和方法,是一個強大數據分析包,同時還能完 成數據清洗(Data cleaning)12。
編寫代碼主要分兩個部分構成,一個是編寫數據爬取部分,一個是編寫 分析部分,所有代碼都需先寫入引入(import)的 requests、beautiful soup、
selenium 等庫保證程式正常運營,然後定義函數(def)去解決反爬蟲問題,
以及其他涉及需定義函數代碼的程式機制;利用正則表達式(Re)13、Beautiful soup 庫及循環語句編寫歌曲 ID、歌曲名稱等數據的爬取規則,在通過 Pandas 庫等完成數據整理導出,即可完成數據爬取任務;在分析代碼編寫部分,編
11 Pandas 庫是用於數據清洗(Data cleaning)的函數庫,百度將其定義為是基於 NumPy 的一種工 具,為解決數據分析任務而創建;Pandas 官網的說明“pandas is an open source, BSD- licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language(Pandas 是一個開放源碼、BSD 許可的庫,為 Python 編程語言提供高性 能、易於使用的數據結構和數據分析工具)”。
12 數據清洗(Data cleaning)百度定義其為對數據進行重新審查和校驗的過程,目的在於刪除重複信 息、糾正存在的錯誤,並提供數據一致性。且該過程不靠人工處理,一般由機器完成。
13 正則表達式(Regular Expression,稱作 Re)是計算機科學的概念,通常被用來查找或代替符合 某個模式或規則的文字及字符串,目的簡單講主要是為了便於批量化抓取數據而編寫的抓取規 則,因為網頁或某項數據的生成是具有規律的,因此設置對應的規律給網絡爬蟲,按規律抓取完 成批量抓取任務。
圖 3- 7 Python 代碼編寫邏輯
關鍵詞搜索部分的編寫,回顧前文提到的網址分析,亦即將搜索關鍵 詞獲得的網址,定義為數據採集入口,是獲得廣告音樂相關的音樂內容清 單的前提,因此將網址定義到代碼中,讓程式自動訪問即可實現(如圖 3-9)。
圖 3- 8 Python 代碼實現關鍵詞訪問
在所有數據爬取流程中,獲取歌曲名稱和 ID 是解決其他數據的前提,
也是核心部分,在獲取歌曲 ID 和名稱後利用 ID 和歌曲名稱就可以找到對 應的歌曲歌詞、歌手名稱、評論數量、評論內容等數據,通過歌單的分析 獲得歌單 ID 最終獲得用戶自定義標簽數據。因此按此邏輯編寫數據爬取 代碼,至此數據爬取部分代碼完成。
採集完數據後編寫數據,處理、合併,分析的代碼,輸出 Excel 格式 數據,以便檢查和二次整理。整個操作過程都經歷爬取-導出-導入-分析等 過程,在爬取-分析過程將爬取的數據分別存檔,以防在爬取數據過程出現 拒絕訪問以及其他有風險問題。
特別說明,因為網亦雲音樂平臺內目標網頁數據無明確數據可爬取音 樂發佈的時間,因此將專輯發行時間數據當做音樂發佈時間處理,並在檢 查數據時進行後期手動補充;最後將全部數據整理輸出為歌曲名、歌手、
評論數、評論內容(點贊排名前 10)綜合 Excel 文檔的初始數據。
通過編寫代碼將整理過後的初始數據導入,利用 Python 分析工具 jieba 編寫分詞和詞頻等統計與分析,編寫 world cloud (詞雲)庫代碼進行文本數 據分析輸出可視化結果,最後保存分析結果,完成分析和導出部分的代碼 編寫。