一、导入基本模块
首先,先是导入内置http模块,导入cheerio模块,利用jq操作dom,看需求,导入fs文件操作模块,或者是querystring模块,写入数据库。
二、利用nodeJs的http模块里面的get API
三、将请求到的数据存入数据库或者写入文件,下面演示写入文件操作
因为,此时请求到的数据是整个网页源代码,所以,我们需要利用cheerio模块里面的jq方法提取出自己需要的数据来写入数据库,或者文件。
四、源码展示
const http = require("http");
const cheerio = require("cheerio");
const fs = require("fs");
// const queryStr = require("querystring");
const urls = "输入你要爬取的地址";
http.get(urls, (res) => {
let rawData = "";
res.on("data", (chunk) => {
rawData += chunk;
});
res.on("end", () => {
try {
getData(rawData);
} catch (e) {
console.error(e.message);
}
});
}).on("error", (e) => {
console.error(`出现错误: ${e.message}`);
});
function getData(datas) {
const $ = cheerio.load(datas);
var arr = [];
var name = $(".jiangshi1 .clear li");
for (var i = 0; i < name.length; i++) {
var obj = {
name: $(name[i]).find("h6").text(),
show: $(name[i]).find(".jieshao").text().trim(),
img: $(name[i]).find(".teacher1_01").attr("src"),
}
fs.appendFile("./teacher.txt", JSON.stringify(obj), 'utf8', (err) => {
if (err) throw err;
})
arr.push(obj);
}
console.log(arr)
}
学习nodeJs的路还很长,需要不断努力。