// 爬虫
const http = require('http'); //导入模块
const fs = require('fs');
// 分析网址的第三方模块
const cheerio = require('cheerio');
// let str = 'https://nodejs.org/dist/index.json'; //访问对象的url地址
let str = 'http://www.4399.com/';
//get请求 获取目标王者
http.get(str, (res) => {
//获取响应的状态码
const {
statusCode } = res;
//设置响应的内容类型
const contentType = res.headers['content-type'];
// 处理错误
let error;
// 任何 2xx 状态码都表示成功的响应,但是这里只检查 200。
if (statusCode !== 200) {
error = new Error('请求失败\n' +
`状态码: ${
statusCode}`);
} else if (!/^text\/html/.test(contentType)) {
error = new Error('无效的 content-type.\n' +
`期望的是 application/json 但接收到的是 ${
contentType}`);
}
if (error) {
console.error(error.message);
// 消费响应的数据来释放内存。
res.resume();
return;
}
//设置字符集
res.setEncoding('utf8');
let rawData = ''; //存储获取到的数据
//监听了一个 数据流 事件
res.on('data', (chunk) => {
rawData += chunk;
});
//监听了一个 结束的 事件
res.on('end', () => {
console.log(rawData);
$ = cheerio.load(rawData); //加载html,返回jQuery对象
$('a').each(function(){
fs.appendFileSync('./a.txt',$(this).attr('href') + '\n');
})
fs.writeFile('./4399.html',rawData,(err)=>{
if(!err){
console.log('爬取成功');
}
})
});
});
全栈一(爬虫)
猜你喜欢
转载自blog.csdn.net/qq_52151772/article/details/115051540
今日推荐
周排行