nodejs爬虫-笨笨兔的故事
起始想找个笨笨兔的故事txt版的放kindle上 无奈网上都是pdf版的,不过倒是有在线阅读的http://www.linuxidc.com/Linux/2010-12/30786.htm
于是打算自己用nodejs写个爬虫来爬一下网站内容生成txt传输到kindle具体请参考我的github
开始编写
用到的库有
- superagent //request请求
- async //并发(异步)流程控制库 用来控制并发数
- cheerio //nodejs的jquery
引入库
//引入request模块
var superagent=require("superagent");
//引入async并发模块
var async=require("async");
//引入DOM操作模块
var cheerio=require("cheerio");
//引入file模块
var fs=require("fs")
初始化url
//生成url
var host="http://www.linuxidc.com/Linux/2010-12/30786";
var urls=[];
//urls初始化
urls.push(host+".htm");
for(var i=2;i<=129;i++){
urls.push(host+"p"+i+".htm")
}
并发爬取url
//并发扒取url
async.mapLimit(urls,5,function(url,callback){
//每次爬取urls获取html
superagent.get(url).end(function(err,html){
if(err){console.log(err)}
var $=cheerio.load(html.text);
var txt=$("#content").text();
//爬去完毕后调用callback
callback(null,txt)
})
},function(err,result){
//result是129个url爬去完毕后汇总的结果
console.log(result)
//fs.mkdir("./txt");
result.forEach(function(e,i){
fs.writeFile("./txt/笨兔兔的故事.txt",e+"\n\r",{flag:"a",encoding:"utf8"},function(err){})
})
})
结束
至此你就写好了一个爬虫,应该没啥技术难点吧都用到了三个库当中的一部分功能