前言

在学习慕课网视频和Cnode新手入门接触到爬虫,说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http、网页分析工具cherrio。 使用http直接获取url路径对应网页资源,然后使用cherrio分析。 这里我主要是把慕课网教学视频提供的案例自己敲了一边,加深理解。在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用。

知识点

①:superagent抓去网页工具。我暂时未用到。

②:cherrio 网页分析工具,你可以理解其为服务端的jQuery,因为语法都一样。

效果图

1、抓取整个网页

2、分析后的数据, 我这里是以慕课网提供的示例为案例实现的例子。

爬虫初探源码分析

var http=require('http');
var cheerio=require('cheerio');var url='http://www.imooc.com/learn/348';/****************************
打印得到的数据结构
[{chapterTitle:'',videos:[{title:'',id:''}]
}]
********************************/
function printCourseInfo(courseData){courseData.forEach(function(item){var chapterTitle=item.chapterTitle;console.log(chapterTitle+'\n');item.videos.forEach(function(video){console.log(' 【'+video.id+'】'+video.title+'\n');})});
}/*************
分析从网页里抓取到的数据
**************/
function filterChapter(html){var courseData=[];var $=cheerio.load(html);var chapters=$('.chapter');chapters.each(function(item){var chapter=$(this);var chapterTitle=chapter.find('strong').text(); //找到章节标题var videos=chapter.find('.video').children('li');var chapterData={chapterTitle:chapterTitle,videos:[]};videos.each(function(item){var video=$(this).find('.studyvideo'); var title=video.text();var id=video.attr('href').split('/video')[1];chapterData.videos.push({title:title,id:id})})courseData.push(chapterData);});return courseData;
}http.get(url,function(res){var html='';res.on('data',function(data){html+=data;})res.on('end',function(){var courseData=filterChapter(html);printCourseInfo(courseData);})
}).on('error',function(){console.log('获取课程数据出错');
})

参考资料

https://github.com/alsotang/node-lessons/tree/master/lesson3

http://www.imooc.com/video/7965

Node.js 爬虫初探相关推荐

  1. Node.js aitaotu图片批量下载Node.js爬虫1.00版

    即使是https网页,解析的方式也不是一致的,需要多试试. 代码: //====================================================== // aitaot ...

  2. Node.js umei图片批量下载Node.js爬虫1.00

    这个爬虫在abaike爬虫的基础上改改图片路径和下一页路径就出来了,代码如下: //====================================================== // ...

  3. node.js 爬虫入门总结

    node.js爬虫 前端同学可能向来对爬虫不是很感冒,觉得爬虫需要用偏后端的语言,诸如 php , python 等.当然这是在 nodejs 前了,nodejs 的出现,使得 Javascript ...

  4. 如何用 Node.js 爬虫?

    本文来自作者 小北 在 GitChat 上分享「Node.js 爬虫从 0 到 1」,「阅读原文」查看交流实录 「文末高能」 编辑 | 家辉 写在前面 我们经常会听说爬虫这个词语,但是却从来没有见过这 ...

  5. java爬虫拉勾网_[Java教程]node.js爬虫爬取拉勾网职位信息

    [Java教程]node.js爬虫爬取拉勾网职位信息 0 2017-03-14 00:00:21 简介 用node.js写了一个简单的小爬虫,用来爬取拉勾网上的招聘信息,共爬取了北京.上海.广州.深圳 ...

  6. node.js 爬虫 实现爬取网页图片并保存到本地

    node.js 爬虫 实现爬取网页图片并保存到本地 没有废话直接看代码 /*** 请求网站数据* 将数据保存本地文件*/ //不同协议引用不同模块,http https const http = re ...

  7. Node.js 爬虫爬取电影信息

    Node.js 爬虫爬取电影信息 本文地址:https://blog.csdn.net/weixin_45580251/article/details/107669713 爬取的是1905电影网的信息 ...

  8. Node.js爬虫一站到底系列先导篇

    前言: 在web编程课上,老师布置了爬虫任务,而没有任何经验和相关方面知识的小白简直一头雾水,不知道该如何下手.一开始抱着一本厚厚的犀牛书啃了好几天,本以为对Javascipt语法有一定了解后便可以自 ...

  9. node.js爬虫中关村在线电瓶车信息

    背景 最近打算买一辆电瓶车来上下班,但又不知道哪个好,网上是各说纷纭啊,于是就想着,干脆用node.js自己写一个小爬虫,来爬一下中关村在线里面电瓶车的信息吧. (以后完整代码请前往 www.yubo ...

最新文章

  1. 周末思考:浅谈如何成为技术一号位?
  2. 【VMware vSAN 6.6】5.1.基于存储策略的管理:vSAN硬件服务器解决方案
  3. 图解PE文件实例研究
  4. Hadoop集群(第6期)_WordCount运行详解
  5. 《视频直播技术详解》系列之七:现代播放器原理
  6. 工信部印发《信息安全产业“十二五”发展规划》
  7. android判断点击次数_Android应用统计-使用时长及次数统计(一)
  8. CSS3动画框架 Animate.css
  9. 答应我,别再靠!= null走天下了可以吗?
  10. mysql字段命名_数据库表及字段命名规范
  11. 【自动控制原理】渐进稳定与临界稳定的区别与联系
  12. Linux傲腾DC128G内存设置,Intel傲腾DC可持续内存开放:单条512GB内存时代来临
  13. 关于VA过期的解决办法
  14. 惠普关闭 secure boot
  15. sql查询将一对多转化为一对一
  16. 快递100获取快递信息(爬虫)
  17. Java回炉之语言基础
  18. C++ UML类图关系
  19. 浅谈磁场中的正则动量
  20. java 一二三四五_五道java小题,补更四道java小题

热门文章

  1. mysql中清空数据库,并重置主键为1
  2. lucene全文检索的概念
  3. 测试人员的系统性思维
  4. python类中包含一个特殊的变量、它可以访问类的成员_Python 类的特殊成员介绍...
  5. base | 数值运算符和逻辑运算符
  6. mysql syncmasterinfo_sync_master_info的一些说明
  7. Web前端三大主流框架是什么?Web前端前景与就业形势
  8. 骆斌软件工程基础思维导图
  9. tidb load data file 失败_TIDB运维之数据导入与导出
  10. python一对一_Python:在数据存储区中建立一对一的关系