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