流程:
/* 1. 请求网站 2. 将数据保存本地文件 3. 分析文件 4. 请求网站... */
api - http://nodejs.cn/api/http.html
视频 - https://www.bilibili.com/video/av86253852?p=11
- 爬 html
/* 1. 请求网站数据 2. 将数据保存本地文件 */
const http = require('https') ;
const fs = require('fs') ;
let url = 'https://www.jd.com/' ; //'http://www.baidu.com' ;
http.get(url,(res) => { // res = response
// data 事件解释:http://nodejs.cn/api/stream/event_data.html , 流api:http://nodejs.cn/api/stream.html#stream_event_data
// 数据分段
// 1. 只要接受数据,就会触发 data 时间
// 2. chunk 每次接受的数据片段
let rawData = '' ;
let a = 0 ;
res.on('data' , (chunk) => {
//不断写数据
rawData += chunk.toString('utf8') ;
console.log(++a) ;
})
// 数据流传输完毕
res.on('end' ,() => {
// 将请求的数据保存到本地
fs.writeFile('./bilibili.html' , rawData ,() => {}) ;
console.log('数据流传输完毕') ;
})
}).on('error' , (e) => {
console.log('请求错误') ;
})