欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng)示例詳解

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

node.js實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng)

工具:cheerio

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

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

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

第一步

我們用node寫(xiě)一個(gè)請(qǐng)求,獲取想要爬蟲(chóng)的網(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ù)錯(cuò)誤!')
})

第二步

我們根據(jù)需求來(lái)編寫(xiě)過(guò)濾HTML的函數(shù),將過(guò)濾后的數(shù)據(jù)打印在控制臺(tái)。

function filterChapters(html) {
    var $ = cheerio.load(html)
    var chapters = $('.course-card-container')//以類(lèi)名獲取節(jié)點(diǎn)元素
    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')
    });
}

爬蟲(chóng)結(jié)果

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

小結(jié):

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

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

相關(guān)文章

  • Node.js實(shí)現(xiàn)修改文件字符集功能的具體過(guò)程

    Node.js實(shí)現(xiàn)修改文件字符集功能的具體過(guò)程

    在日常生活、工作中,我們經(jīng)常會(huì)遇到需要處理不同編碼格式的文件,有時(shí),在嘗試打開(kāi)這些文件時(shí)會(huì)遇到亂碼,原因通常是文件的編碼與我們使用的文本編輯器或編程語(yǔ)言的默認(rèn)編碼不匹配,這篇文章將介紹Node.js修改文件字符集的實(shí)現(xiàn)思路和具體實(shí)現(xiàn)過(guò)程
    2024-08-08
  • 用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox)

    用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox)

    這篇文章主要介紹了用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-05-05
  • express中間件加載機(jī)制示例詳解

    express中間件加載機(jī)制示例詳解

    中間件是一種方法,可以接收客戶(hù)端發(fā)來(lái)的請(qǐng)求,可以對(duì)請(qǐng)求做出響應(yīng),也可以將請(qǐng)求繼續(xù)交給下一個(gè)中間件繼續(xù)處理,下面這篇文章主要給大家介紹了關(guān)于express中間件加載機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 在nodejs中使用swagger方式

    在nodejs中使用swagger方式

    這篇文章主要介紹了在nodejs中使用swagger方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Nodejs實(shí)現(xiàn)多人同時(shí)在線移動(dòng)鼠標(biāo)的小游戲分享

    Nodejs實(shí)現(xiàn)多人同時(shí)在線移動(dòng)鼠標(biāo)的小游戲分享

    這篇文章主要介紹了Nodejs實(shí)現(xiàn)多人同時(shí)在線移動(dòng)鼠標(biāo)的小游戲分享,本文給出了服務(wù)器端和客戶(hù)端代碼以及運(yùn)行方法,需要的朋友可以參考下
    2014-12-12
  • Node.js模塊加載詳解

    Node.js模塊加載詳解

    這篇文章主要介紹了Node.js模塊加載詳解,本文講解了加載核心模塊、加載文件模塊、加載目錄模塊、從文件加載模塊等內(nèi)容,需要的朋友可以參考下
    2014-08-08
  • Yapi安裝部署詳細(xì)圖文教程

    Yapi安裝部署詳細(xì)圖文教程

    YApi 是一個(gè)可本地部署的、打通前后端及QA的、可視化的接口管理平臺(tái),下面這篇文章主要給大家介紹了關(guān)于Yapi安裝部署的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Node.js 使用axios讀寫(xiě)influxDB的方法示例

    Node.js 使用axios讀寫(xiě)influxDB的方法示例

    這篇文章主要介紹了Node.js 使用axios讀寫(xiě)influxDB的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類(lèi)示例

    nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類(lèi)示例

    這篇文章主要介紹了nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類(lèi),涉及nodejs操作redis進(jìn)行緩存設(shè)置相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • node.js調(diào)用Chrome瀏覽器打開(kāi)鏈接地址的方法

    node.js調(diào)用Chrome瀏覽器打開(kāi)鏈接地址的方法

    其實(shí)在Node.JS中打開(kāi)瀏覽器網(wǎng)址非常簡(jiǎn)單,但還是有必要整理下分享給有需要的朋友們,這篇文章主要給大家介紹了node.js如何調(diào)用Chrome瀏覽器打開(kāi)鏈接地址的方法,文中介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起看看吧。
    2017-05-05

最新評(píng)論