Node.js之網絡小爬蟲

使用JavaScript在前端訪問跨域頁面經常用到Ajax,後端Node.js抓取網頁信息就容易得多。html

 

下面是一個最簡單的例子,抓取個人博客主頁信息,顯示首頁博客標題。前端

 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操做的封裝,使用方式也相似。跨域

 

結果:函數

相關文章
相關標籤/搜索