vue中如何实现后台进程定时爬取头条文章
这篇文章将为大家详细讲解有关vue中如何实现后台进程定时爬取头条文章,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
成都创新互联公司是一家以网络技术公司,为中小企业提供网站维护、网站建设、做网站、网站备案、服务器租用、申请域名、软件开发、重庆小程序开发等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站联系热线:028-86922220
首先打开后端项目,首先在项目根目录创建文件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中如何实现后台进程定时爬取头条文章就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
新闻标题:vue中如何实现后台进程定时爬取头条文章
当前链接:http://scyanting.com/article/pppohj.html