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