js文件
// 第一步,引入所需模块
const request = require('request');
const cheerio = require('cheerio');
// const JSDOM = require('jsdom');
const fs = require('fs');
// 比较cheerio 和 jsdom 的区别
// console.log(cheerio);
// console.log(JSDOM);
// 第二步,https://cnodejs.org/ 请求网址
request('https://cnodejs.org/', (res, req, err) => {
// 第三步,实现对DOM树的操作
// req请求体?body获取的内容
// console.log(req.body);
let $ = cheerio.load(req.body);
let goods = [];
// 注意:each后面的参数,先放index,然后再放element
$('#topic_list .cell').each((index, element) => {
//空的对象,用来存放获取的数据
let data = {
};
data.id = index + 1;
// 第四步,通过节点获取所需数据
data.url = $(element).find('.user_avatar img').attr('src');
data.title = $(element).find('.topic_title').attr('title');
// 把对象插入数组,即相当于把字符串数据转换为json数据
goods.push(data);
});
// 第五步,把数据写入文件
// ./data/request.json 不会自动生成,需手动创建
let writestr = fs.createWriteStream('./data/request.json');
//转换为字符串
let str = JSON.stringify(goods);
//写入
writestr.write(str);
//写入完成
writestr.end();
//写入完成提示
writestr.on('finish', () => {