Node.js之网络小爬虫

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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操作的封装,使用方式也类似。

 

结果:

技术分享

 

以上是关于Node.js之网络小爬虫的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 使用爬虫批量下载网络图片到本地

node.js之爬虫

Node.js——HTTP小爬虫

Node.js写爬虫系列之第1章

实用前端Node.js写爬虫系列之第3章:编写小说阅读器

Node.js学习 爬虫下载豆瓣电影top250图片