// 导入http模块 用来请求(爬取)http请求 var http = require('http'); // 导入https模块 用来请求(爬取)https请求 var https = require('https'); // 导入fs模块 用来存取文件或操做文件 var fs = require('fs'); // 导入 cheerio 模块 用来操做node版的jq var cheerio = require('cheerio'); // 导入 url 网址 var url = 'http://2017.miaov.com/bbs'; //调用函数 fetchRequest(url); //爬取函数 function fetchRequest(url){ var html=''; //采用http模块向服务器发起一次get请求 http.get(url,function(res){ var titles = []; //防止中文乱码 res.setEncoding('utf-8'); //监听data事件,每次取一块数据 res.on('data',function(chunk){ html += chunk; }); //监听end事件,若是整个网页内容的html都获取完毕,就执行回调函数 res.on('end',function(){ //采用cheerio模块解析html var $ = cheerio.load(html); //用来存储内容的 var news_item = []; $('.listMain').each(function(index,item){ var title = $(this).find('.postTitle').text(); var url = '2017.miaov.com' + $(this).find('a').attr('href'); datatitle = title + '\n'+ url + '\r\n'; news_item.push({ title:title, url:url }) //向文件写入内容 fs.appendFile('./data/' + 'pachong.txt', datatitle, 'utf-8', function (err) { if (err) { console.log(err); } }); }); //待处理爬取后的内容 console.log(news_item); }) }) }