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