使用C#/.NET解析Wiki百科資料實現獲取歷史上的今天

WeskyNet發表於2024-07-17
建立一個webapi專案做測試使用。
0
建立新控制器,搭建一個基礎框架,包括獲取當天日期、wiki的請求地址等
0
建立一個Http請求幫助類以及方法,用於獲取指定URL的資訊
0
使用http請求訪問指定url,先執行一下,看看返回的內容。內容如圖右邊所示,實際上是一個Json資料。我們主要解析 大事記 部分的內容,位於Json的revisions欄位內
0
定義有關實體類,用於把收到的json資料轉換為物件
0
根據轉換的物件,可以看到物件內所有需要的內容,都在Content欄位裡面了。由於不知道是否存在多層結構,所以此處使用迴圈來遍歷內容。先搭建個模子。
0
編寫一個正規表示式,根據規律,可以識別出,每個詞條都是以[]的形式存在,並且存在巢狀內容,所以做一個資料清理,清理巢狀抽重複的資料。
0
解析出來的新文字,看起來內容舒服一點了。然後我們只需要獲取[[xx年]]的這些詞行資料,所以可以繼續做個資料清理,匹配正規表示式
0
根據匹配的正規表示式內容,做個遍歷輸出
0
檢視輸出的內容,可以看到已經被過濾成功了:
0
不過預設是繁體字,咱們再完善下,做成簡體字。先安裝一個古老的包:ChineseConverter 有提示不用管,能用。
0
然後直接呼叫即可:
string simplifiedText = ChineseConverter.Convert(繁體中文字串, ChineseConversionDirection.TraditionalToSimplified);
然後重新跑一下,可以看到繁體變成了簡體了。
0
最後,剩下的一些括號等符號,或者特殊字元,只需要做一個全域性替換即可。以及如果需要解析其他內容,也可以自行再開發一個對應的正規表示式即可。
如需以上原始碼,可在個人公眾號【Dotnet Dancer】後臺回覆“歷史上的今天” 即可獲取以上原始碼。

相關文章