# node-crawler **Repository Path**: GUMEIK/node-crawler ## Basic Information - **Project Name**: node-crawler - **Description**: No description available - **Primary Language**: HTML - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-03-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # node爬虫 常用到的工具 ## cheerio ```js // 引入cheerio const cheerio = require("cheerio"); // 假设html为一个网页 let html = ` Document
你好呀
`; // 创建$对象 const $ = cheerio.load(html); // 利用选择器进行元素选择,这里假设选择div里面的文字内容 // 语法和jquery类似 // 选择出来的结果并不是真实的dom对象,是一个具有一个或多个虚拟dom对象的数组 let context = $('div#test') // 将选择出来的虚拟dom对象转换为Jquery对象 let jDom = $(context[0]); // 调用jquery的方法,提取div中的text let text = jDom.text(); console.log(text) ``` ## node-schedule ```js var schedule = require("node-schedule"); //1. 确定的时间执行 // 要注意这里的月份是从 0 - 11 分别代表 1 - 12月份 var date = new Date(2020,2,10,14,24,0); schedule.scheduleJob(date, function(){ console.log("执行任务"+date); }); //2. 秒为单位执行 //比如:每5秒执行一次 var rule1 = new schedule.RecurrenceRule(); var times1 = [1,6,11,16,21,26,31,36,41,46,51,56]; // rule1.second = 5;每分钟的第五秒执行 // 同理 // rule.minutes = 5;每小时的第5分钟执行 rule1.second = times1; schedule.scheduleJob(rule1, function(){ // console.log("执行任务"); }); //3.以分为单位执行 //比如:每5分种执行一次 var rule2 = new schedule.RecurrenceRule(); var times2 = [1,6,11,16,21,26,31,36,41,46,51,56]; rule2.minute = times2; schedule.scheduleJob(rule2, function(){ // console.log("执行任务"); }); //4.以天单位执行 //比如:每天6点30分执行 var rule = new schedule.RecurrenceRule(); // 从周一到周六的六点三十分分执行,参数为数组。 // 每周的某一天执行,参数为一个数字 rule.dayOfWeek = [0, new schedule.Range(1, 6)]; rule.hour = 6; rule.minute =30; var j = schedule.scheduleJob(rule, function(){ //     console.log("执行任务"); }); // 5.取消定时执行 // j.cancel() ``` # 新型冠状病毒爬虫练习 COV为本次练习代码文件,COVData为爬取到的数据 ## 接口请求地址及参数如下 `/covdata/?date=20200310` ## 请求返回结果 ```js [ { // 疑似病例 "suspectedCount": 0, // 累积死亡人数 "deadCount": 3024, // 当前确诊人数 "currentConfirmedCount": 16995, // 累积治愈人数 "curedCount": 47741, // 累积确诊人数 "confirmedCount": 67760, // 地理位置id "locationId": 420000, // 省份名称 "provinceName": "湖北省", "provinceShortName": "湖北", // 评论 "comment": "", // 下属城市(字段和省份一致) "cities": [ { "suspectedCount": 0, "deadCount": 2404, "currentConfirmedCount": 15588, "curedCount": 31973, "confirmedCount": 49965, "locationId": 420100, "cityName": "武汉" }, { "suspectedCount": 0, "deadCount": 126, "currentConfirmedCount": 281, "curedCount": 3111, "confirmedCount": 3518, "locationId": 420900, "cityName": "孝感" } ] } ] ```