最简单的用nodejs爬取数据的方法
程序员文章站
2022-03-03 17:48:54
...
将www.baidu.com的页面内容copy至index.html中
const http=require('https');
const fs=require('fs');
//发起服务器短的请求
http.get('https://www.baidu.com/', (res) => {
// console.log(res)
// console.log(res.statusCode)
const { statusCode } = res;//状态码
const contentType = res.headers['content-type'];//请求类型
console.log(contentType)
// new Error('你错了') 错误信息对象
let error;
if (statusCode !== 200) {
error = new Error('状态码不是200');
} else if (!/^text\/html/.test(contentType)) {
error = new Error('文件格式不对');
}
if (error) {
console.log(error.message);
// consume response data to free up memory
res.resume();// 清除请求缓存
return;
}
// 数据处理
res.setEncoding('utf8');
//设置数据的编码格式
let rawData = '';
res.on('data', (chunk) => {// 接受分段数据会触发 chunk 接受到的分段数据
rawData += chunk;
});
res.on('end', () => {
//接受信息完毕 会触发end 方法
fs.writeFileSync('./index.html',rawData)
});
})
.on('error', (e) => {
// 如果请求出错会触发error事件
console.error(`Got error: ${e.message}`);
});