用node.js实现简单的网络爬虫程序
目标:抓取新浪网站带有中国关键字的链接
ps:在这之前要安装request cheerio模块
代码如下:
var request=require(‘request’);
//引入操作dom的模块
var cheerio=require(‘cheerio’);
//引入文件模块
var fs=require(‘fs’);
//定义一个匹配关键字连接的正则表达式
var pattern=/中国/;
//定义要爬的网站首页
var firstUrl=’http://www.sina.com‘;
//发起请求
request({url:firstUrl},function(err,response,body){
if(err)
{
console.log(‘读取出错’);
}
else
{
console.log(‘读取网页成功’);
//用cheerio模块加载所读的内容
var $=cheerio.load(response.body.toString());
var arr = $('a').toArray();
var hrefs = [];
var href = {};
arr.forEach(function(a){
//此处进行关键字的匹配,匹配到则返回true,否则返回false
if(pattern.test($(a).text().trim())){
href.href = $(a).attr('href');
href.text = $(a).text().trim();
hrefs.push(href);
console.log(hrefs);
//将爬取的数据写入文件
fs.appendFile('href.txt',href.text+'\n'+href.href+'\n\n','utf8',function(err)
{
if(err)
{
console.log('写入出错');
}
});
}
});
}
})
第一次写博客,写的不好请见谅