Node.js 爬虫初探
前言
在学习慕课网视频和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 爬虫初探相关推荐
- Node.js aitaotu图片批量下载Node.js爬虫1.00版
即使是https网页,解析的方式也不是一致的,需要多试试. 代码: //====================================================== // aitaot ...
- Node.js umei图片批量下载Node.js爬虫1.00
这个爬虫在abaike爬虫的基础上改改图片路径和下一页路径就出来了,代码如下: //====================================================== // ...
- node.js 爬虫入门总结
node.js爬虫 前端同学可能向来对爬虫不是很感冒,觉得爬虫需要用偏后端的语言,诸如 php , python 等.当然这是在 nodejs 前了,nodejs 的出现,使得 Javascript ...
- 如何用 Node.js 爬虫?
本文来自作者 小北 在 GitChat 上分享「Node.js 爬虫从 0 到 1」,「阅读原文」查看交流实录 「文末高能」 编辑 | 家辉 写在前面 我们经常会听说爬虫这个词语,但是却从来没有见过这 ...
- java爬虫拉勾网_[Java教程]node.js爬虫爬取拉勾网职位信息
[Java教程]node.js爬虫爬取拉勾网职位信息 0 2017-03-14 00:00:21 简介 用node.js写了一个简单的小爬虫,用来爬取拉勾网上的招聘信息,共爬取了北京.上海.广州.深圳 ...
- node.js 爬虫 实现爬取网页图片并保存到本地
node.js 爬虫 实现爬取网页图片并保存到本地 没有废话直接看代码 /*** 请求网站数据* 将数据保存本地文件*/ //不同协议引用不同模块,http https const http = re ...
- Node.js 爬虫爬取电影信息
Node.js 爬虫爬取电影信息 本文地址:https://blog.csdn.net/weixin_45580251/article/details/107669713 爬取的是1905电影网的信息 ...
- Node.js爬虫一站到底系列先导篇
前言: 在web编程课上,老师布置了爬虫任务,而没有任何经验和相关方面知识的小白简直一头雾水,不知道该如何下手.一开始抱着一本厚厚的犀牛书啃了好几天,本以为对Javascipt语法有一定了解后便可以自 ...
- node.js爬虫中关村在线电瓶车信息
背景 最近打算买一辆电瓶车来上下班,但又不知道哪个好,网上是各说纷纭啊,于是就想着,干脆用node.js自己写一个小爬虫,来爬一下中关村在线里面电瓶车的信息吧. (以后完整代码请前往 www.yubo ...
最新文章
- 周末思考:浅谈如何成为技术一号位?
- 【VMware vSAN 6.6】5.1.基于存储策略的管理:vSAN硬件服务器解决方案
- 图解PE文件实例研究
- Hadoop集群(第6期)_WordCount运行详解
- 《视频直播技术详解》系列之七:现代播放器原理
- 工信部印发《信息安全产业“十二五”发展规划》
- android判断点击次数_Android应用统计-使用时长及次数统计(一)
- CSS3动画框架 Animate.css
- 答应我,别再靠!= null走天下了可以吗?
- mysql字段命名_数据库表及字段命名规范
- 【自动控制原理】渐进稳定与临界稳定的区别与联系
- Linux傲腾DC128G内存设置,Intel傲腾DC可持续内存开放:单条512GB内存时代来临
- 关于VA过期的解决办法
- 惠普关闭 secure boot
- sql查询将一对多转化为一对一
- 快递100获取快递信息(爬虫)
- Java回炉之语言基础
- C++ UML类图关系
- 浅谈磁场中的正则动量
- java 一二三四五_五道java小题,补更四道java小题
热门文章
- mysql中清空数据库,并重置主键为1
- lucene全文检索的概念
- 测试人员的系统性思维
- python类中包含一个特殊的变量、它可以访问类的成员_Python 类的特殊成员介绍...
- base | 数值运算符和逻辑运算符
- mysql syncmasterinfo_sync_master_info的一些说明
- Web前端三大主流框架是什么?Web前端前景与就业形势
- 骆斌软件工程基础思维导图
- tidb load data file 失败_TIDB运维之数据导入与导出
- python一对一_Python:在数据存储区中建立一对一的关系