node.js怎么实现简单爬虫

发布时间:2023-04-26 11:47:47 作者:iii
来源:亿速云 阅读:92

本文小编为大家详细介绍“node.js怎么实现简单爬虫”,内容详细,步骤清晰,细节处理妥当,希望这篇“node.js怎么实现简单爬虫”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

node.js实现简单爬虫

工具:cheerio

cheerio 是 nodejs 特别为服务端定制的,能够快速灵活的对 JQuery 核心进行实现。它工作于 DOM 模型上,且解析、操作、呈送都很高效。 更多 API 参看: github.com/cheeriojs/c…

我们以慕课网页面为例,爬取每个视频课程的标题和课程对应 id,期望结构如下:

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

第一步

我们用node写一个请求,获取想要爬虫的网站html,这里以慕课网为例:

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('获取数据错误!')
})

第二步

我们根据需求来编写过滤HTML的函数,将过滤后的数据打印在控制台。

function filterChapters(html) {
    var $ = cheerio.load(html)
    var chapters = $('.course-card-container')//以类名获取节点元素
    var titles = []
    chapters.each(function (item) {
        var chapter = $(this)
        var chapterTitle = chapter.find('h4').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')
    });
}

爬虫结果

【935】Vue+Webpack打造todo应用
【882】基于websocket的火拼俄罗斯(单��版)
【861】基于Websocket的火拼俄罗斯(基础)
【866】前端性能优化-通用的缓存SDK
【773】AC2016腾讯前端技术大会
【728】创业公司的Nodejs工程师
【725】Roundtable前端分享专场
【637】进击Node.js基础(二)
【590】阿里D2前端技术论坛——2015融合
【564】去哪儿前端沙龙分享第三期
【556】慕课网技术沙龙之前端专场
【434】去哪儿前端沙龙分享第二期
【367】Qnext前端交互沙龙
【348】进击Node.js基础(一)
【221】D2前端技术论坛——2014绽放
【197】node建站攻略(二期)——网站升级
【75】node+mongodb 建站攻略(一期)

读到这里,这篇“node.js怎么实现简单爬虫”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. PHP和Node.js的区别是什么
  2. PHP优于Node.js的理由有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

node.js

上一篇:Java Web中ServletContext对象怎么应用

下一篇:Python模块怎么创建和使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》