真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

node中怎么實現(xiàn)一個http小爬蟲

這篇文章給大家介紹node中怎么實現(xiàn)一個http小爬蟲,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)冀州免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

爬取Node.js 教程首頁的所有數(shù)據(jù)

建立node-http.js,其中代碼如下,代碼中有詳細的的注釋,自行理解了哈

var http=require('http');//獲取http模塊
var url='http://www.runoob.com/nodejs/nodejs-tutorial.html';//定義node官網(wǎng)地址變量

http.get(url,function(res){
  var html='';

  // 這里將會觸發(fā)data事件,不斷觸發(fā)不斷跟新html直至完畢
  res.on('data',function(data){
    html +=data
  })

  // 當數(shù)據(jù)獲取完成將會觸發(fā)end事件,這里將會打印初node官網(wǎng)的html
  res.on('end',function(){
    console.log(html)
  })
}).on('error',function(){
  console.log('獲取node官網(wǎng)相關(guān)數(shù)據(jù)出錯')
})

終端執(zhí)行結(jié)果中發(fā)現(xiàn)這個頁面的html全部被爬下來了

G:\node\node-http> node node-http.js






Node.js 教程 | 菜鳥教程








。。。。。。。。。。
這里只展示部分不然你半天看不到頭

當然爬個HTML對于我們來說沒啥用,現(xiàn)在我們要做些過濾,比如這個node教程中我想知道課程目錄有哪些,這樣可以選擇感興趣的去看看學(xué)學(xué)。直接上代碼吧還是:

不過在此之前我們需要下載cheerio模塊(cheerio是nodejs的抓取頁面模塊,為服務(wù)器特別定制的,快速、靈活、實施的jQuery核心實現(xiàn)。適合各種Web爬蟲程序。)具體詳細介紹你們可以自行去搜索了解,cheerio的用跟jquery的用法非常類似,所以不用擔(dān)心上手繁瑣。

PS G:\node\node-http> npm install cheerio

建立node-http-more.js,其中代碼如下:

var http=require('http');//獲取http模塊
var cheerio=require('cheerio');//引入cheerio模塊
var url='http://www.runoob.com/nodejs/nodejs-tutorial.html';//定義node官網(wǎng)地址變量
// filer node chapter
function filerNodeChapter(html){
  // 將爬取得HTML裝載起來
  var $=cheerio.load(html);
  // 拿到左側(cè)邊欄的每個目錄
  var nodeChapter=$('#leftcolumn a');
  //這里我希望我能獲取的到的最終數(shù)據(jù)格式這個樣子的,如此我們能知道每個目錄的地址及標題
  /**
   * [{id:,title:}]
   */
  var chapterData=[];
  nodeChapter.each(function(item){
    // 獲取每項的地址及標題
    var id=$(this).attr('href');
    var title=$(this).text();
    chapterData.push({
      id:id,
      title:title
    })
  })

  return chapterData;

}

//獲取每個數(shù)據(jù)
function getChapterData(nodeChapter){
  nodeChapter.forEach(function(item){
    console.log(' 【 '+item.id+' 】'+item.title+'\n')
  });
}

http.get(url,function(res){
  var html='';

  // 這里將會觸發(fā)data事件,不斷觸發(fā)不斷跟新html直至完畢
  res.on('data',function(data){
    html +=data
  })

  // 當數(shù)據(jù)獲取完成將會觸發(fā)end事件,這里將會打印初node官網(wǎng)的html
  res.on('end',function(){
    //console.log(html)
    // 過濾出node.js的課程目錄
    var nodeChapter= filerNodeChapter(html);

    //循環(huán)打印所獲取的數(shù)據(jù)
    getChapterData(nodeChapter)
  })
}).on('error',function(){
  console.log('獲取node官網(wǎng)相關(guān)數(shù)據(jù)出錯')
})

終端執(zhí)行結(jié)果及打印出課程目錄

G:\node\node-http> node node-http-more.js
 【 /nodejs/nodejs-tutorial.html 】
Node.js 教程

 【 /nodejs/nodejs-install-setup.html 】
Node.js 安裝配置

 【 /nodejs/nodejs-http-server.html 】
Node.js 創(chuàng)建第一個應(yīng)用

 【 nodejs-npm.html 】 NPM 使用介紹

 【 nodejs-repl.html 】 Node.js REPL

 【 nodejs-callback.html 】 Node.js 回調(diào)函數(shù)

 【 nodejs-event-loop.html 】 Node.js 事件循環(huán)

 【 nodejs-event.html 】 Node.js EventEmitter

 【 nodejs-buffer.html 】 Node.js Buffer

 【 nodejs-stream.html 】 Node.js Stream

 【 /nodejs/nodejs-module-system.html 】
Node.js 模塊系統(tǒng)
。。。。。。。。。。。
這里就不全部給出,你可以自己嘗試著運行操作查看所有結(jié)果

關(guān)于node中怎么實現(xiàn)一個http小爬蟲就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


分享題目:node中怎么實現(xiàn)一個http小爬蟲
網(wǎng)站鏈接:http://weahome.cn/article/ipsggj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部