request模块
- 作用:可用于发起http或者https请求,可以理解为服务端的Ajax请求。可以进行简单的服务器代理,用法 和ajax类似。
- 安装:
npm install request --save
- get请求
const request = require('request');
request.get('https://cnodejs.org/api/v1/topics?page=1&limit=10', (error, response, body) => {
// error: 错误信息,默认null
// response: 相应对象
// body: 请求响应内容
console.log(body)
});
//or
request('https://cnodejs.org/api/v1/topics?page=1&limit=10', (error, response, body) => {
console.log(body)
});
cheerio模块
- 一个专门为服务器设计包含jQuery核心库的第三方模块
cheerio.load(html)
- 用于在html代码以便进一步的精确选取,它不会执行html代码中的css和css和js
爬虫的应用
例子:爬取一张图片存储到本地
//这里用 request 实现一个简单的图片抓取的小爬虫
const request = require('request');
const fs = require('fs');
const cheerio = require('cheerio');// cheerio为包含jQuery 核心的子集
const path = require('path');
request('http://www.lanrentuku.com/', (error, response, body) => {
// 执行load方法载入获取到的html结构
let $ = cheerio.load(body);
// 利用jquery的核心方法获取html代码中的具体元素
$('img', '.in-ne').each((i, e) => {
let src = $(e).attr('src');
let filename = path.basename(src);
// 利用request与stream数据流保存爬取到的图片到本地硬盘
request(src).pipe(fs.createWriteStream(filename))
})
});
WebSocket模块
安装:
npm install ws
开启websocket服务器
let wss = new socketServer({
port: 1001
});
```