使用Python爬蟲教你如何實現給微信群發新聞早報!看一下怎么操作吧!


1. 場景

經常有小伙伴在交流群問我,每天的早報新聞是怎么獲取的?


其實,早期使用的方案,是利用爬蟲獲取到一些新聞網站的標題,然后做了一些簡單的數據清洗,最后利用 itchat 發送到指定的社群中。

由於爬蟲面對 網站改版的不穩定性及 itchat 不安全性 ,所以放棄了這種方案

后期更改了一種方案,通過修改爬蟲方案,創建 API 服務,編寫 App 去獲取數據,然后手動發送到微信群

本篇文章將和大家詳細聊聊具體的實現過程

2. 數據爬取

第 1 步, 通過 Python 爬蟲獲取數據

獲取方式有 2 種,分別是:已有的新聞早報網站、新聞網站的頭條新聞

選擇一種爬蟲方式,就能很快地爬取到目標網站的數據

第 2 步, 數據清洗,排序

將爬取到的數據先進行一次關鍵字篩選,然后按照點贊或者閱讀數按照熱點進行排序

第 3 步, 參數化,去重

去掉數據中重復的新聞,然后將最后展示的數目參數化


需要注意的是, 由於新聞網站會經常改版,建議爬取多個新聞網站,做好異常處理,做一個優先級,如果一個網站爬取數據失敗,切換到下一個級別的網站爬取數據

3. 服務化

將數據服務化,即編寫 API,目的是為了方便終端調用

如果使用 Python 編寫 API,建議使用 FastAPI 或 Flask 框架,因為這兩個框架開發 API 方便快捷, 以 FastAPI 為例:

第 1 步, 安裝依賴

包含 FastAPI 框架及 hypercorn 依賴,hypercorn 是獨立的 ASGI 服務器,方便 FastAPI 項目的部署


第 2 步, 編寫 API

使用 FastAPI 很方便, 不到 10 行代碼就能編寫一個接口服務

只需要實例化 FastAPI 對象,利用裝飾器指定請求方法和路徑即可,調用上面的爬蟲方法即可。


如要想本地調試 API,可以通過 uvicorn 命令運行項目


然后訪問下面的地址,查看返回的新聞數據

http://127.0.0.1:8000/last_news


 

第 3 步, 生成依賴遷移文件

使用 pip freeze 命令將在本地生成依賴遷移文件


第 4 步, 上傳代碼

將代碼上傳到代碼托管平台,比如:碼雲、GitLab 等

第 5 步, 服務器拉取代碼

服務器中通過 git 拉取代碼,並通過依賴文件一鍵安裝所有依賴


第 6 步, 運行服務

使用 hypercorn 運行 FastAPI 項目,使進程一直在后台運行,並保存運行日志信息


需要注意的是, 項目綁定的端口號需要在防火牆和雲服務器安全組開啟

當然,如果使用 Java 編寫 API,推薦使用 Spring Boot,可以快速開發一個 Restful API 服務

4. 編寫 App

完成 API 服務之后,接下來就是在終端編寫一款 App 去訪問 API,拿到數據並展示出來

以編寫一款 Android 應用為例

首先,我們在界面上放置一個文本顯示框和一個按鈕控件

然后, 對按鈕控件設置點擊事件的監聽


接着, 使用 Android 的網絡請求框架 OkHttp 框架調用 API 獲取數據


最后,將新聞數據顯示在文本控件中, 並復制到系統剪切板


如果只有 iOS 設備,使用 Xcode 編寫 iOS 應用,建議將 Xcode 升級到 11.0 以上

創建項目的時候,推薦使用 SwiftUI 構建 UI 界面,然后利用 CocoaPods 添加 Alamofire 網絡請求依賴庫,其他操作步驟和 Android 端類似,這里不展開說明


5. 最后

上面步驟只需要點擊 App 中的按鈕,早報新聞就復制到系統剪切板了,接着可以轉發到多個微信群了

當然,最后一步也可以利用 SoloPi 或者無障礙,將內容利用自動化操作,一鍵轉發出去

 

此文轉載文,著作權歸作者所有,如有侵權聯系小編刪除!

原文地址:https://www.tuicool.com/articles/EBVZzy6

 

需要源代碼或者想了解更多的點擊這里下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM