这篇文章将为大家详细讲解有关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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。