實現的是經過使用各類azure服務,天天自動獲取資訊、博客,定時推送到公衆號的功能!git
微信公衆號搜索TechViews,或直接掃描二維碼關注,天天推送科技資訊。github
我我的有瀏覽科技資訊的需求。長期以來,我經過一些新聞客戶端、關注部分公衆號推送、谷歌快訊、搜索引擎關鍵詞搜索等方式去獲取我想要的資訊,比較分散和費時。爲了知足本身的需求,我須要可以每天獲取到本身感興趣的內容。數據庫
從2016年年中接觸.net core開始,陸續瞭解了微軟相關的技術棧,其實包括Azure服務。近年來機器學習、人工智能等概念很火,但具體的應用,還不是十分普遍。微信Azure當中就提供了認知服務,其實包括語言、圖片、音頻、視頻等相關的接口服務。本身通過對部分服務的瞭解和使用後,最終應用到如今的服務當中。編程
參考: Azure認知服務文檔api
作一個天天自動推送資訊的公衆號都包含哪些部分,我是如何去實現的呢?下面作簡單說明。微信
內容是最主要的,對於資訊來講,來是要從網絡上採集,但網絡上的內容衆多,如何採集篩選並不容易。網絡
資訊來源架構
對於資訊來講,我是直接使用的Azure提供的 Bing News Search
接口,可根據關鍵詞返回結果。
能夠經過如下連接直接體驗搜索的效果。
固然,搜索過來的新聞,哪些要保存,哪些有問題,怎麼去重篩選,這個不細說了,根據每一個人的需求須要自定義。這樣就解決了資訊來源問題。我會進一步對篩選過的網站,對詳細頁再進行採集處理(保留全部版權和來源信息),做爲內容顯示在網站TechViews上。機器學習
點擊在線體驗必應新聞搜索。工具
技術文章來源
另外一方面,對於一些技術類文章,我並無選擇直接從國內的博客網站上去獲取,由於這些相對來講比較容易,你們想獲取均可以比較輕鬆的獲取到。因此我會有意找國外的文章。尷尬而且有意思的是,國外雖然也有個別博客平臺有專門的技術分類,但基本沒什麼有用的內容。感受老外更多的仍是經過官方文檔、stackoverflow、github、gitter之類方式學習和解決問題的,不像國內用百度一搜索,就是一堆重複的文章,散落到csdn、cnblogs等博客平臺。因此,目前我能找到的是經過一些官方的博客rss源獲取內容。這樣原始內容算是有了。只是國外的文章須要翻譯纔可閱讀,因此我藉助Azure提供的 Bing Translate Api
接口對英文進行翻譯。不過因爲微軟提供的翻譯接口是非神經網絡訓練的,有須要的要本身訓練 ,而本身訓練要大量必定格式的訓練數據,並不容易,因此如今我已經更改爲Goole雲提供的翻譯接口了,谷歌對大部分語言都支持神經網絡翻譯,結果要準確的多。
基本處理
數據來源有了,但處理是最花時間和精力的,咱們要應對各類數據源缺失、重複的狀況。這一塊很少講,其實沒什麼好辦法,遇到一個處理一個,好比創建本身的過濾列表等內容。
縮略圖處理
我從rss獲取的博客文章,是不帶縮略圖的。但若是要想做爲圖文消息推送到微信中,就須要有一個縮略圖,這個時候須要打一個組合拳了。
首先,我會對英文文章的標題處理,使用Azure認知服務中的文本分析服務,對標題進行關鍵詞提取。而後根據關鍵詞使用必應圖片搜索服務,獲取與之相關的圖片地址。固然,但凡使用接口獲取數據,都要根據本身的策略去對結果進行選擇。這就解決了縮略圖的問題。
點擊在線體驗文本分析。
點擊在線體驗必應圖像搜索。
基本上,經過使用翻譯、搜索、文本分析等服務,我能夠將一篇國外的文章,轉化成可經過微信推送的中文文章。
內容來源和處理大概講了,剩下的就是經過程序實現,而且要自動化整個流程。我只須要尋找好的內容來源,添加採集處理的邏輯就能夠。
咱們要實現的是:
Azure Function
服務,定時採集處理,經過後臺接口更新到數據庫中。Azure Function
服務,定時採集處理,經過後臺接口更新到數據庫中。Azure Function
服務,天天定時調用後臺接口,後臺接收請求後,進行微信推送。提及來,也沒什麼架構,就是一個網站程序,提供後臺管理的功能,而後提供一些自用接口。而對於須要耗時、定時處理的任務,直接使用 Azure Function
便可,都是一鍵部署,方便省心。
做爲從小學就接觸編程教育的人,技術對我來講就是興趣,是展示我的創造力的一種途徑。若是你會樂器,你就能夠把本身的想法轉化成音符演奏出來;你會寫做或繪畫,就能夠在紙上展示出來你的想法;一樣的,你會寫程序,也可經過編寫軟件提供服務的形式來展示你的想法。
一切的出發點是知足實際的需求,這樣才能真正發揮技術的價值。像微軟、谷歌等公司,已經爲開發者提供了各類開發工具和服務的支持,如何應用這些東西實現咱們的需求,是真正的價值所在。
總結使用的技術:
最最重要的是,Azure的服務都是免費的,免費的,免費的!。
Azure的註冊用戶能夠無償使用以上所有服務,固然有必定的額度限制,但足夠我目前使用的了。
Azure提供了各類功能,均可以避免費體驗,有實力不怕你驗證,給你充分的學習和體驗機會,這纔是真的雲! 配合優雅的C#,宇宙至強IDE,開發和部署簡單輕鬆!