Node.js之网络小爬虫

使用JavaScript在前端访问跨域页面常常用到Ajax,后端Node.js抓取网页信息就容易得多。

 

下面是一个最简单的例子,抓取我的博客主页信息,显示首页博客标题。

 1 var http = require('http')
 2 var cheerio = require('cheerio')
 3 
 4 var url = 'http://www.cnblogs.com/feitan/'
 5 
 6 function filterHtml(html) {    //使用cheerio处理DOM
 7     var $ = cheerio.load(html)
 8 
 9     var data = []
10     var titles = $('.postTitle a')
11     titles.each(function(){
12         data.push($(this).text())
13     })
14 
15     return data
16 }
17 
18 function outputInfo(data){    //数据进一步传递,这里直接输出
19     data.forEach(function(title){
20         console.log('\n'+ title)
21     })
22     
23 }
24 
25 http.get(url,function(res){  //http模块get方法访问url资源
26     var html = ''
27     res.on('data',function(data){  
28         html+=data
29     })
30 
31     res.on('end',function(){
32         var data = filterHtml(html)
33         outputInfo(data)
34     })
35 }).on('error',function(){
36     console.log('获取数据出错')
37 })

 

21行指定一个url资源发起get请求,回调函数处理响应对象response,response返回的是HTML文档。

对DOM处理使用了cheerio包,它类似jQuery对JavaScriptDOM操作的封装,使用方式也类似。

 

结果:

 

转载于:https://www.cnblogs.com/feitan/p/5322665.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值