接續昨天的內容,我們剛剛所要蒐集的三個資料:「文章標題」、「文章人氣」、
以及「發文日期」都抓取出來了,那現在就要把他們轉換成易於閱讀的檔案。
相對於之前我們做過的將檔案轉成csv格式,並儲存在EXCEL內,
我這次會嘗試另外一個方法,也就是將檔案存成「JSON格式」,來看看會有什麼不同。
JSON ( JavaScript Object Notation ) 是一種使用結構化資料
呈現 JavaScript 物件的標準格式,同時也是一個相當普及的輕量級資料交換格式
( JSON 本質其實只是純文字格式 ),
幾乎所有與網路開發相關的語言都有處理 JSON 的函式庫。
(資料來源:
https://steam.oxxostudio.tw/category/python/library/json.html)
那知道什麼是JSON後,我們就直接來看新增的程式碼吧:
(新增的程式碼都有用箭頭標示出來)
那這邊就針對新增的程式碼做一些講解:
(有一些是重複的格式,我就會挑其中的一個出來講而已)
這邊就是在Python內引入 json這個模塊。
這是 Python 內建的用來處理 JSON 資料的模塊。
因為上面有解釋過了,這邊就點到為止。
這行則是定義了一個空的列表 data_list。
這個列表將會用來存儲所有從網頁中提取的文章數據。
在最後每篇文章的數據都將以字典的形式存儲在這個列表中。
在爬取每篇文章的數據時,我們需要定義一個空字典 data。
這個字典要用來存儲每篇文章的具體信息,比如標題、人氣和日期。這
樣才可以為每篇文章建立一個結構化的數據條目。
這邊就是我們在上面說到的「具體訊息」。在提取到標題後,
我們就可以將它存儲在 data 字典中。
在這個範例裡面,鍵是 "標題",而值則是文章的標題 title。
在每次從網頁中成功提取一篇文章的標題、人氣和日期後,
就會把這些信息組合成的 data 字典添加到 data_list 列表中。
而append在這邊的意思就是「新增」、「追加」的意思。
這裡就跟我們之前的撰寫差不多,設置開啟的模式以及編碼,僅此而已。
這行代碼將實際數據寫入 JSON 文件,
那裏面有幾行比較沒看過的,這邊挑出來看一下:
這個選項確保中文字符會正確地寫入文件,而不會被轉換成 ASCII 編碼的字符。
這樣可以讓我們人類比較好閱讀(畢竟是給人看不是給機器看)
這樣講可能還是有點模糊,我們看個範例:
當ensure_ascii=False時,我們就可以確保中文的呈現是「中文」,
而不是變成我們看不懂的ACSII編碼。
這個選項使 JSON 文件更加易讀,每個層級縮進 4 個空格,使數據有結構化的格式。
換句話說,其實就是「縮排」的概念,讓文件變得更容易閱讀。
那在看完並理解完新增的程式碼後,我們就來看看它執行的結果如何:
可以看到在左邊新增了一個JSON檔案,那我們就把它點開來看看:
裡面就是我們排版完的資料了,是不是美觀很多了!!!