// 导入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);
})
})
}