您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關vue中如何實現后臺進程定時爬取頭條文章,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
首先打開后端項目,首先在項目根目錄創建文件background_task.js用于調取第三方API以及業務邏輯的處理,在dao層創建文件background_task.js用于數據庫業務邏輯處理。然后進入app.js,在頂部引入background_task.js文件:
var backgroudTask = require('./backgroud_task');
然后在底部封裝startBackgroundTask()進行定時任務的調用:
app.startBackgroundTask = function() { backgroudTask.start();}
進入bin/www文件,調用app.startBackgroundTask();
進入項目根目錄的background_task文件,書寫進程啟動方法和停止方法,啟動的時候調用runOnce方法,在runOnce方法中實現爬取數據的業務邏輯。進程每15分鐘爬取一次:
接下來調用獲取新聞頭條的接口在路由層我們書寫方法get_news()直接調用dao層方法,然后在runOnce()中調用get_news(),將所有業務邏輯在dao層實現:
進入dao層,書寫get_news()方法。首先調用第三方API獲取新聞數據,發起請求之前封裝好了baseRequest()方法:
接下來調取第三方API獲取新聞數據:
我們可以重啟服務看下控制臺輸出:
可以看到返回的每一條數據都有一個唯一的uniquekey,我們可以根據uniquekey參數判斷數據庫是否存在本篇文章來進行篩選重復數據:
根據is_exist參數判斷本篇文章是否存在于數據庫,如果不存在則保存到數據庫:
我們插入文章數據時status設置為2,因為我們自己發表文章status設置為1。這里區分狀態碼是由于自己上傳的文章與爬取過來的文章參數不一致,需要對前端界面展示及后端接口進行適配。我們可以查看數據庫是否正常插入數據:
接下來我們進入獲取文章列表接口,參數多返回url以及uniquekey:
后臺管理文章列表只能返回當前用戶status為1的文章,參數多返回url以及uniquekey:
接下來回到vue項目,在首頁點擊閱讀全文的時候對status為1則正常進入文章詳情界面,如果文章status為2,則直接跳轉到對應文章的url:
到這里我們就成功實現一個進程實時同步第三方新聞頭條文章。并且對前端也做了適當適配,豐富了首頁板塊內容。我們最后可以看下目前的首頁效果:
關于vue中如何實現后臺進程定時爬取頭條文章就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。