首先下载npm的一个模块
命令:
npm i crawler
下载完你会得到一个名字是node_modules文件夹跟一个package-lock.json文件
注意:
var Crawler = require('crawler')
const fs = require('fs')
var c = new Crawler({
maxConnections: 10,
callback: function (error, res, done) {
if (error) {
console.log(error);
} else {
var $ = res.$;
// console.log($('title').text());
//文件夹路径自定义 fs.writeFile('./temp/1.txt', $('body').text(), (err) => {
if (err == null) {
console.log('爬去成功')
}
})
}
done()
}
})
//爬取的网站内容的地址
c.queue('https://ncov.dxy.cn/ncovh5/view/pneumonia')
var Crawler = require("crawler");
var fs = require('fs');
var c = new Crawler({
encoding:null,
jQuery:false,// set false to suppress warning message.
callback:function(err, res, done){
if(err){
console.error(err.stack);
}else{
fs.createWriteStream(res.options.filename).write(res.body);
}
done();
}
});
c.queue({
uri:"https://nodejs.org/static/images/logos/nodejs-1920x1200.png",
filename:"nodejs-1920x1200.png"
headers:{'User-Agent':'requests'}
});
注意:在爬取网站的视频的时候为了防止人家的反爬技术,我们需要伪装
就是伪装浏览器请求(我们的是服务端请求)
headers:{'User-Agent':'requests'}
// 创建一个静态资源服务器
const express = require('express')
const app = express()
//将项目公开
app.use(express.static('web'))
app.listen(8089, () =>{
console.log('服务器开启了')
})
/**
* 接口:得到一条随机笑话
* 接口地址:/joke
* 请求方式:get
* 参数:无
* 返回:一条笑话
*/
// 导包
const express = require('express')
// 创建服务器
const app = express()
// 写接口
app.get('/joke', (req, res) => {
let arr = ['狐狸走路会摔跤,因为狡猾,哈哈', '蔡徐坤是男的', '徐坤爱碧落']
let index = Math.floor(Math.random() * 3) //1,2,0
// 返回笑话
res.send(arr[index])
})
// 开启服务器
app.listen(4399, () => {
console.log('服务器开启了')
})
/*
接口:用户登录
请求地址:/login
请求方式:post
请求参数:username password
返回值:登录成功、登录失败
*/
// 导包
const express = require('express')
const bodyParser = require('body-parser')
// 创建服务器
const app = express()
app.use(bodyParser.urlencoded({extended:false}))
// 写接口
app.post('/login', (req, res) => {
console.log(req.body)
// 由于是post方式传递过来的 参数,所以用req.query这种方式拿不到
// 使用第三方模块:body-parser
console.log(req.body)
if (req.body.username == 'lyb' && req.body.password == '666') {
res.send({
code: 200,
msg:'登录成功'
})
} else {
res.send({
code: 400,
msg:'账号密码不对'
})
}
res.send('sb')
})
// 开启服务器
app.listen(8089, () => {
console.log('f服务器开启了')
})
第三方模块:multer
/*
注册接口
接口地址:/register
请求方式:post
请求参数:username password usericon(用户头像)
返回数据:注册成功、失败
*/
const express = require('express')
const multer = require('multer')
const app = express()
// 用包:创建一个文件夹
var upload = multer({ dest: 'uploads/' })
app.post('/register', upload.single('usericon'), (req, res) => {
res.send('sb')
// file:传递过啦的信息
console.log(req.file,req.body)
})
app.listen(4399, () => {
console.log('服务器开启');
})