最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js實現(xiàn)簡單爬蟲示例詳解

 更新時間:2023年04月26日 10:30:07   作者:前端小蜜蜂來也  
這篇文章主要為大家介紹了node.js實現(xiàn)簡單爬蟲示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

node.js實現(xiàn)簡單爬蟲

工具:cheerio

cheerio 是 nodejs 特別為服務(wù)端定制的,能夠快速靈活的對 JQuery 核心進行實現(xiàn)。它工作于 DOM 模型上,且解析、操作、呈送都很高效。 更多 API 參看: github.com/cheeriojs/c…

我們以慕課網(wǎng)頁面為例,爬取每個視頻課程的標(biāo)題和課程對應(yīng) id,期望結(jié)構(gòu)如下:

titles = [{
  chapterTitle: chapterTitle,
  id: id
}]

第一步

我們用node寫一個請求,獲取想要爬蟲的網(wǎng)站html,這里以慕課網(wǎng)為例:

var http = require('http')
var url = 'http://www.imooc.com/course/list?c=nodejs'
http.get(url, function(res){
  var html = ''
  res.on('data', function(data){
    html += data
  })
  res.on('end', function(){
    var result = filterHml(html)
    print(result)
  })
}).on('error', function(){
  console.log('獲取數(shù)據(jù)錯誤!')
})

第二步

我們根據(jù)需求來編寫過濾HTML的函數(shù),將過濾后的數(shù)據(jù)打印在控制臺。

function filterChapters(html) {
    var $ = cheerio.load(html)
    var chapters = $('.course-card-container')//以類名獲取節(jié)點元素
    var titles = []
    chapters.each(function (item) {
        var chapter = $(this)
        var chapterTitle = chapter.find('h3').text()
        var id = chapter.find('a').attr('href').split('learn/')[1]
        titles.push({
            chapterTitle: chapterTitle,
            id: id
        })
    })
    return titles
}
function printCourseInfo(courseData){
    courseData.forEach(item => {
        console.log('【' + item.id + '】' + item.chapterTitle + '\n')
    });
}

爬蟲結(jié)果

【935】Vue+Webpack打造todo應(yīng)用
【882】基于websocket的火拼俄羅斯(單??版)
【861】基于Websocket的火拼俄羅斯(基礎(chǔ))
【866】前端性能優(yōu)化-通用的緩存SDK
【773】AC2016騰訊前端技術(shù)大會
【728】創(chuàng)業(yè)公司的Nodejs工程師
【725】Roundtable前端分享專場
【637】進擊Node.js基礎(chǔ)(二)
【590】阿里D2前端技術(shù)論壇——2015融合
【564】去哪兒前端沙龍分享第三期
【556】慕課網(wǎng)技術(shù)沙龍之前端專場
【434】去哪兒前端沙龍分享第二期
【367】Qnext前端交互沙龍
【348】進擊Node.js基礎(chǔ)(一)
【221】D2前端技術(shù)論壇——2014綻放
【197】node建站攻略(二期)——網(wǎng)站升級
【75】node+mongodb 建站攻略(一期)

小結(jié):

node.js使得JavaScript代碼能夠運行在服務(wù)端,從而進行一些操作,node.js的更多用法參看后續(xù)文章.

以上就是node.js實現(xiàn)簡單爬蟲示例詳解的詳細內(nèi)容,更多關(guān)于node.js簡單爬蟲的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • node.js微信小程序配置消息推送的實現(xiàn)

    node.js微信小程序配置消息推送的實現(xiàn)

    這篇文章主要介紹了node.js微信小程序配置消息推送的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • 詳解NodeJs支付寶移動支付簽名及驗簽

    詳解NodeJs支付寶移動支付簽名及驗簽

    本文主要介紹了NodeJs支付寶移動支付簽名及驗簽的方法,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 全面解析node 表單的圖片上傳

    全面解析node 表單的圖片上傳

    本文給大家介紹分享node全面解析表單的圖片上傳,本文給大家介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • Node.js中child_process實現(xiàn)多進程

    Node.js中child_process實現(xiàn)多進程

    這篇文章主要介紹了Node.js中child_process實現(xiàn)多進程,需要的朋友可以參考下
    2015-02-02
  • vscode 調(diào)試 node.js的方法步驟

    vscode 調(diào)試 node.js的方法步驟

    這篇文章主要介紹了vscode 調(diào)試 node.js的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 詳解Express筆記之動態(tài)渲染HTML(新手入坑)

    詳解Express筆記之動態(tài)渲染HTML(新手入坑)

    這篇文章主要介紹了詳解Express筆記之動態(tài)渲染HTML(新手入坑),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Node.js 在本地生成日志文件的方法

    Node.js 在本地生成日志文件的方法

    這篇文章主要介紹了Node.js 在本地生成日志文件的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • node.js中的fs.lchmod方法使用說明

    node.js中的fs.lchmod方法使用說明

    這篇文章主要介紹了node.js中的fs.lchmod方法使用說明,本文介紹了fs.lchmod的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 用NODE.JS中的流編寫工具是要注意的事項

    用NODE.JS中的流編寫工具是要注意的事項

    Nodejs讀寫流流的傳輸過程默認是以buffer的形式傳輸?shù)?除非你給他設(shè)置其他編碼形式, 小伙伴可以參考下。
    2016-03-03
  • Node調(diào)用Java的示例代碼

    Node調(diào)用Java的示例代碼

    本篇文章主要介紹了Node調(diào)用Java的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論

宁波市| 云安县| 龙游县| 饶阳县| 德兴市| 浦县| 德令哈市| 苍梧县| 广宁县| 改则县| 靖边县| 巍山| 天镇县| 潞城市| 遂溪县| 资阳市| 祥云县| 微山县| 西平县| 奇台县| 同仁县| 米易县| 晋江市| 桃园市| 吉隆县| 江川县| 汕头市| 沙坪坝区| 浏阳市| 沛县| 马龙县| 新郑市| 张家港市| 扶风县| 公主岭市| 车险| 卢龙县| 嘉禾县| 黎城县| 沽源县| 大余县|