egg(17)--定时任务schedule,监听网站是否被修改,cheerio爬虫

news/2023/12/9 20:30:25

目录结构

clipboard.png

文件内容

安装依赖

cnpm install cheerio --save
service/spider.js
'use strict';

const Service = require('egg').Service;

class SpiderService extends Service {
  async requestUrl(url) {
    var result = await this.ctx.curl(url);
    return result;
  }
}

module.exports = SpiderService;
schedule/watchdomain.js
var cheerio = require('cheerio')
module.exports = (app) => {
    return {
        schedule:{
            interval:'10s',
            type:'all'
        },
        async task(ctx){
            var url = 'https://news.baidu.com/';
            var result = await ctx.service.spider.requestUrl(url);
            //buff数据转为utf8
            var htmlData = result.data.toString();
            // 乱码转为utf8
            const $ = cheerio.load(htmlData,{decodeEntities:false})
            // 拿到网站标题
            var title = $('title').html();
            if(title != '百度新闻——全球最大的中文新闻平台'){
                console.log("网站被修改了")
            }else{
                console.log("正常")
            }
            //根据class拿到数据
            $('.hotnews a').each(function(){
                console.log($(this).html())
            })
        }
    }
}

网站内容

clipboard.png

clipboard.png

clipboard.png

cheerio爬虫拿到数据,解析

clipboard.png


http://www.niftyadmin.cn/n/1997065.html

相关文章

list vector 中的函数

#include <vector> #include <list> using namespace std; 然后直接使用 List的所有函数 全英文..... Table 6.12. Constructors and Destructor of Lists Operation Effect list<Elem> c Creates an empty list without any elements list<Elem> c1(c…

c语言交换数组中的两个元素,如可交换两个数组中的元素?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #include int main(void){int a[]{1,2,3,4,5,6,7,8};int b[]{9,10,11,12,13,15};int lena,lenb,randa,randb,randtimes;int i,temp;srand((unsigned)time(NULL));lena sizeof(a)/sizeof(int);lenb sizeof(b)/s…

CRichEditControl 一些问题

一.常见问题a.可以编译,不能执行的AfxInitRichEdit(); b.升级默认的Riched版本(默认的有一些bug)&#xff0c;如可在InitInstance中添加LoadLibrary("RICHED20.DLL") 最后注意 FreeLibrary 如果是CRichEditView基类的可用BOOL CXXXXXXView::PreCreateWindow(CREATE…

在wsl下运行c语言,在Windows10下在WSL中使用visual studio code

介绍VS code 很好用。WSL很好。所以两者结合起开使用爽歪歪。在Windows上模拟Linux进行编译的方式有几种1、安装MinGW&#xff0c;使用gcc或者g进行编译2、使用Windows连接WSL进行编译本文介绍第二种注意:Linux下的项目,在Windows上编译操作,1,2两种方案都是很好的.要是想保持开…

CRichEditControl 不能正常使用的原因

【1、最基本的弹出窗口代码】 其实代码非常简单&#xff1a; <SCRIPT LANGUAGE"javascript"> <!-- window.open (page.html) --> </SCRIPT> 因为着是一段javascripts代码&#xff0c;所以它们应该放在<SCRIPT LANGUAGE"javascript…

w ndows10启动黑屏,Win10系统开机黑屏怎么办 Windows10开机黑屏的解决方法

我们在使用Win10系统电脑的时候&#xff0c;有时会碰到开机黑屏的问题&#xff0c;感觉十分恼人。那么&#xff0c;我们该如何解决Windows10开机黑屏问题呢&#xff1f;其实&#xff0c;Win10系统开机黑屏要分成几种不同的情况来应对。接下来&#xff0c;小编就再本文为大家总结…

C# 堆栈(Stack)和队列(Queue)

一、什么是堆&#xff1f;&#xff08;Heap&#xff09; 堆是无序的&#xff0c;是一片不连续的内存域&#xff0c;由用户自己来控制和释放&#xff0c;如果用户自己不释放的话&#xff0c;当内存达到一定的特定值时&#xff0c;通过垃圾回收器&#xff08;GC&#xff09;来回收…

RichEdit 控件基础知识

RichEdit 控件基础知识 CRichEditCtrl实现MSN/QQ动画表情CRichEditCtrl实现MSN背景,字体,超链接高手解答&#xff1a;关于RICHEDIT的两个问题随心所欲地在memo或richedit里作图BCB3.0中让TRichEdit支持BIG5内码改变RichEdit的游标位置让TRichEdit支持BIG5内码理论 A richedit …

提高 search_n 的性能

提高 search_n 的性能Can search_n be more efficient?&#xff08;By Jim Xochellis&#xff09;本文讨论常用的search_n的性能&#xff0c;另外介绍一个新的专门处理随机访问迭代器的search_n&#xff0c;它的性能上要超过常规使用方法。Performance Tests - 12.1 Kb1. 介…

java抽象类、多态、接口

抽象类 抽象类的产生 当编写一个类时&#xff0c;我们往往会为该类定义一些方法&#xff0c;这些方法是用来描述该类的功能具体实现方式&#xff0c;那么这些方法都有具体的方法体。 但是有的时候&#xff0c;某个父类只是知道子类应该包含怎么样的方法&#xff0c;但是无法准确…

android 环动画效果图,Android 自定义View实现动画形式加载环形图

先看效果图(图片是gif&#xff0c;比较卡顿)&#xff1a;通过调用postInvalidateDelayed()延时绘制的方法&#xff0c;可以实现以上图片中的延时效果&#xff0c;下面来看具体代码&#xff1a;1、自定义View类&#xff1a;public class MyProgressView extends View {private P…

win10 android虚拟,win10系统安卓模拟器使用的操作方法

喜欢使用电脑的小伙伴们一般都会遇到对win10系统安卓模拟器使用进行设置的问题&#xff0c;突然遇到win10系统安卓模拟器使用的问题就不知道该怎么办了&#xff0c;其实设置win10系统安卓模拟器使用的方法非常简单&#xff0c;按照1、开启 Hyper-V 虚拟化技术(已经开启的无视):…

vue项目未加载完成前显示loading...

1.在Index.html里面加入loading的元素&#xff0c;让loading元素显示&#xff0c;让app元素隐藏 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Demo</title><link rel"icon" href"/favicon.ico&…

精简的手动写的MFC代码

下面的源程序仅仅包括了具备VC基本特点所必须的代码,可是不能通过编译. "MyApp.h" ********************************************************* class CMyApp : public CWinApp { public: virtual BOOL InitInstance(); …

Google面临人才流失

Google面临人才流失来源&#xff1a;搜狐IT   【搜狐IT消息】据美国《财富》杂志报道&#xff0c;12月8日&#xff0c;来自美国知名媒体的七位新闻人来到旧金山&#xff0c;讨论未来科技动态。其中包括华尔街日报的多恩克 拉克、《圣何塞信使报》的大卫萨特菲尔德、《红鲱鱼》…

Jmeter入门(一)理论基础

前言&#xff1a;性能测试的基础是功能测试。性能测试的核心是业务场景&#xff0c;而这个业务场景是从功能测试的场景测试中提取出来的。 所以一个软件的测试顺序是&#xff1a;功能1&#xff08;接口&#xff09;→性能N&#xff08;接口&#xff09;→自动化&#xff08;接口…
最新文章