nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)四 存储提到的内容的次数
var cheerio = require('cheerio');
var iconv = require('iconv-lite');
var https= require('https');
var mysql = require('mysql');// 创建连接
var connection = mysql.createConnection({host : 'localhost',user : 'root',password : '12345678',database : 'testmysql'
});connection.connect();var bookList = [];
var Bindex = 0;function zhihuin(Bindex, index) {console.log(Bindex);return new Promise(function (resolve, reject) {var addSql = 'INSERT INTO zhihuNum(Id, name, num) VALUES(?,?,?)';var addSqlParams = [Bindex, bookList[index].name, bookList[index].num];// 这个连接也是异步的connection.query(addSql, addSqlParams,function (err, result) {if(err){console.log('[INSERT ERROR] - ',err.message);reject(0);}else {resolve(1);}});})
}function zhihuinnum(Bindex, index) {zhihuin(Bindex, index).then(function (data) {Bindex++;index++;if(index < bookList.length){zhihuinnum(Bindex, index);}else {connection.end();}},function (data) {index++;if(index < bookList.length){zhihuinnum(Bindex, index);}else {connection.end();}})
}function zhihunum(){var sql = 'SELECT works FROM zhihuBook';
//查connection.query(sql,function (err, result) {if(err){console.log('[SELECT ERROR] - ',err.message);return;}else {for(let item of result){if(item.works != ''){// console.log(item.works.trim().split(/\s+/));var bookwork = item.works.match(/《.*?》/g);// console.log(bookwork)for (let ilist of bookwork){if(bookList.length == 0){bookList.push({'name': ilist, 'num': 1});}else {var i = 0;for(i = 0; i < bookList.length; i++){if(ilist == bookList[i].name){console.log(ilist, bookList[i].name)bookList[i].num++;break;}}if(i >= bookList.length){bookList.push({'name': ilist, 'num': 1});}}}}}// console.log(bookList);bookList = bookList.sort((x, y)=>{if(x.num < y.num){return 1;}else if(x.num > y.num){return -1;}else{return 0;}});zhihuinnum(0, 0);}});
}zhihunum();
// connection.end();
1、数组的排序函数sort
bookList = bookList.sort((x, y)=>{if(x.num < y.num){return 1;}else if(x.num > y.num){return -1;}else{return 0;}});
接受两个参数,都是数组中的元素,第二个参数在数组中的序列是在第一个参数后面,函数体中,返回正数,表明两个元素交换位置,返回0,表明相等。返回负数,表明不交换位置。
nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)四 存储提到的内容的次数相关推荐
- nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)一 爬取所有话题类型
首先爬取话题广场所有话题. var cheerio = require('cheerio'); var iconv = require('iconv-lite'); var https= requir ...
- nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)六 在express中建立路由
创建express的过程以及开启html引擎我就不赘述了. var express = require('express'); var router = express.Router(); var m ...
- nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)六 html
使用的是express后台返回html. res.render('xxx(html名称)'); 有可能在浏览器里看到的是静态文件,是因为浏览器把它认为是文件格式,所以要设置头 res.set({'Co ...
- nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)五 对提到的关键字(书名或者电影名)去百度百科上爬取介绍
var https = require('https'); var iconv = require('iconv-lite'); var cheerio = require('cheerio'); v ...
- 关于使用NodeJS+Express搭建服务器访问静态资源的一些填坑经验
前言 NodeJs是一个能让前端开发工程师变成全栈工程师的神器.最近在搞一个私活,需要上传图片到服务器存储.按照以前的想法,是用Java写代码搭服务器.奈何,大学毕业后就一直在搞前端和安卓开发.Jav ...
- 虚拟服务器nodejs项目部署打包,nodejs+express搭建服务器及vue项目部署打包
一.Express 1.Node.js 2.Express Express是一个保持最小规模的灵活的Node.js web应用程序开发框架,为web和移动应用程序提供一组强大的功能 安装: npm i ...
- nodejs+express搭建服务器
1.Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速地搭建一个完整功能 ...
- NodeJs本地搭建服务器,模拟接口请求,获取json数据
最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...
- nodejs+express搭建小程序后台服务器
本文使用node.js和express来为小程序搭建服务器.node.js简单说是运行在服务端的javascript:而express是node.js的一个Web应用框架,使用express可以非常简 ...
最新文章
- hibernate 7大主键生成策略详解与对象状态
- 20180130之PYTHON学习笔记【PYTHON3写个自动听课功能】
- 探讨float类型的数值,为什么两个float不能直接相等
- IAR编译Z-Stack项目报错—Error[e46]: Undefined external “?V11” referred in AF
- 鼠标紧跟lable_紧跟当前软件工程趋势的12种方法
- 祝贺!吴晟成为 Apache 软件基金会首位中国董事!
- 结对编程-四则运算2
- BiLSTM+CRF医学病例命名实体识别项目
- 01. Django基础:Django介绍
- java实现画笔的画圆与矩形功能_JAVA怎么画出一个任意大小的圆形和矩形
- 通过BIOS设置启用CPU虚拟化解决VMware虚拟机不支持X86_64位linux操作系统安装问题
- 实验一 作业管理系统的总结与期望
- 知识笔记 - 平头哥ratel安卓Hook框架的安装与简单使用
- ansys linux卸载干净,安装了几次ansys14.5,都没有成功,删除重新安装后许可安装不了了...
- 深度解密Go语言之map
- 数学形态学之腐蚀算法
- 计算机如何更改后缀文件名,如何批量修改文件后缀名(任何文件的扩展名)?
- 微信小程序 - <textarea> 多行文本输入框 placeholder 属性换行显示文字(适用于 vant-weapp 的 Field 输入框文本域组件 van-field)样式修改的详细教程
- 万商云集企业SAAS服务平台
- Qt开发高级进阶: WebCamera(UVC)摄像头使用QAbstractVideoSurface捕获视频帧到QImage