流程:

/* 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('请求错误') ; 
})