武漢疫情牽動著全國人民的心,各大網站紛紛製作了實時疫情播報網站,來讓大家能及時地瞭解到疫情的最新進展。
騰訊:https://news.qq.com/zt2020/page/feiyan.htm
丁香園:https://ncov.dxy.cn/ncovh5/view/pneumonia
然而對一些老年人或者其他群體來說,要讓他們上網查看疫情仍然比較困難或者不方便。本文描述了怎麼樣從零開始製作一個能實時播報疫情的QQ機器人,這是最後的效果圖:
用以簡化疫情信息的獲取途徑,傳播正能量的同時學習.Net的開發技巧。
本文的源代碼可在碼雲上獲取:https://gitee.com/akitosilver/CoronavirusQQRobot
1.前置開發環境:
本文使用Visual Studio 2019社區版開發,.Net SDK為3.1
QQ機器人採用酷Q Air:https://cqp.cc/
QQ機器人接口採用Newbe.Mahua:https://www.newbe.pro/Newbe.Mahua/Begin-First-Plugin-With-Mahua-In-v1.9/
2.原理講解:
本文的框架如圖所示。
要發送疫情,首先我們要先獲得數據:
源碼分別抓取了騰訊和丁香園的數據,這裡我們以騰訊為例:
首先用Chrome打開騰訊實時疫情播報的首頁,按下F12,到網絡標籤,隨便在Search裡搜索一個數據相關的數字,如下圖,即可獲得騰訊播報的數據接口:
數據為標準的Json,粘貼到Json格式化工具裡分析:
獲得其Json的結構,大概是:
獲得了JSON的結構後,我們把這個JSON接口轉化為我們C#的類
HTTP下載JSON之後反序列化,即實現了數據的抓取:
利用Timer類,我們可以讓我們的程序定時(幾分鐘)抓取一次這個數據,這裡不再贅述。
2.發送數據:
發送數據部分請詳細參考源代碼與Newbe.Mahua文檔:https://www.newbe.pro/Newbe.Mahua/Begin-First-Plugin-With-Mahua-In-v1.9/
簡單來說我們之後只需要遍歷這個JSON數據對應的類,找到地區數據發送即可。
閱讀更多 玩硬件 的文章