首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

vue博客实战-实现后台进程定时爬取头条文章

通过前面几篇的沉淀,博客的基本功能其实已经全部实现了。但是前期没有用户量,博客的文章显得太过单薄,所以本篇是临时新增在后端实现一个定时进程,定时爬取第三方精选文章,比如微信精选之类的文章。

首先打开后端项目,首先在项目根目录创建文件background_task.js用于调取第三方API以及业务逻辑的处理,在dao层创建文件background_task.js用于数据库业务逻辑处理。然后进入app.js,在顶部引入background_task.js文件:

然后在底部封装startBackgroundTask()进行定时任务的调用:

进入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

后台管理文章列表只能返回当前用户status1的文章,参数多返回url以及uniquekey

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190808A0L1OU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券