runoob.js var cheerio = require('cheerio');var request = require('sync-request');var fs = require('fs');var process = require('process');var url = process.argv[2];if(!url){console.log('请指定页面。');process.exit(0);}var ofile = fs.op
var cheerio = require('cheerio');
var request = require('sync-request');
var fs = require('fs');
var process = require('process');
var url = process.argv[2];
if(!url)
{
console.log('请指定页面。');
process.exit(0);
}
var ofile = fs.openSync('out.html', 'w');
var html = request('GET', url).getBody().toString();
var toc = getToc(html);
for(var i in toc) {
try {
var url = toc[i];
console.log('page: ' + url);
html = request('GET', url).getBody().toString();
var content = getContent(html);
fs.writeSync(ofile, content, null, 'utf-8');
fs.writeSync(ofile, '\n
\n', null, 'utf-8');
} catch(ex) {
console.log(ex);
}
}
fs.closeSync(ofile);
console.log('Done..');
function getToc(html) {
var $ = cheerio.load(html);
var $list = $('#leftcolumn').find('a');
var res = [];
for(var i = 0; i < $list.length; i++)
{
var url = $list.eq(i).attr('href');
res.push('http://www.runoob.com/' + url);
}
return res;
}
function getContent(html) {
var $ = cheerio.load(html);
$('.tryitbtn').remove();
var content = $('#content').html();
return content;
}
