Node.js爬虫

Node.js爬虫(本测试爬虫新浪博客NBA新闻)步骤如下:

1.    进入Node.js中文网,选择对应版本下载,下载后安装

进入命令行,输入node –v,若出现版本号,则安装成功


2.本测试实用Subline Text2编辑器,下载并安装。创建文件夹。命令行进入文件夹,输入npm install cheerio,安装cheerio。


安装成功后,文件夹中会多出两个文件


3.    在该文件夹下创建getData.js文件。代码如下:

//http方式访问url返回数据
 //nodejs单线程占用资源少
const http = require("http");//模块引入方法 
const url="http://sports.sina.com.cn/nba/1.shtml";
const cheerio=require("cheerio");
const fs=require("fs");
http.get(url,(res)=>{
	var html="";
	//有数据过来
	res.on("data",(chunk)=>{
		html+=chunk;
	});
//请求数据全部发送完毕之后
	res.on("end",()=>{
		const $=cheerio.load(html);//直接获取页面内容  通过cheerio模块处理内容
		$("#right a").each(function(index){
			const newUrl=$(this).attr("href");//获取到目标元素中的a标签中的href属性
                        console.log(index);
			http.get(newUrl,(res)=>{
				var newHtml="";
				res.on("data",(chunk)=>{
					newHtml+=chunk;
				});
				res.on("end",()=>{
					fs.writeFile(`./news/${index}.html`,newHtml,(err)=>{//访问到里面所有的链接并且把内容取出  生成一个新的页面
						if(err){throw err}
							console.log('新闻${index}.html生成结束')
					});
				});
			}).on("error",(e)=>{
             //请求出错
             console.log('错误:${e.message}');
            });
		});
		//console.log($("#right a").text());
	});
}).on("error",(e)=>{
//请求出错
console.log('错误:${e.message}');
});

因为本测试将爬取到的数据存放到`./news/${index}.html`路径下,所以在该目录下继续创建文件夹news,最后文件夹下有如下文件。


4.    打开命令行,进入该文件夹路径下,输入:node getdata.js运行,结果如下


打开news文件夹,爬取的网页信息






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值