Node2.js
Node.js简单爬虫的爬取,也是跟着慕课网上抄的,网站有一点点改动,粘上来好复习嘛
var http = require('http')
var cheerio = require('cheerio')
var url = 'http://www.imooc.com/learn/348' function filterChapters(html){
var $ = cheerio.load(html) var chapters =$('.chapter') // [{
// chapterTitle:'',
// videos:[
// title:'',
// id:''
// ]
// }]
// var courseData=[] chapters.each(function(item){ var chapter = $(this) var chapterTitle = chapter.find('h3').text() // var videos =chapter.find('.video').children('li')
var videos =chapter.find('.video').children('li')
var chapterData = {
chapterTitle: chapterTitle,
videos:[]
} videos.each(function(item){
var video = $(this).find('.J-media-item')
var videoTitle = video.text()
// var id = video.attr('href').split('video/')[1]
// var id = video.find('.data-media-id').text();
var id = video.attr('href').split('/video/')[1]
chapterData.videos.push({
title: videoTitle,
id: id
}) }) courseData.push(chapterData)
}) return courseData
} 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')
})
})
} http.get(url, function(res){
var html = '' res.on('data', function(data){
html += data;
}) res.on('end', function(){
// filterChapters(html)
var courseData = filterChapters(html)
//console.log(courseData+'finish'+'\n')
printCourseInfo(courseData)
})
}).on('error',function(){
console.log('获取课程数据出错')
})
效果
数据还有一点没整理好得日后再弄
就是把不想要的也取回来了,现在还不懂怎么数据清洗干净,先记下来。
Node2.js的更多相关文章
- nodejs开发指南读后感
nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...
- 【 D3.js 高级系列 — 10.0 】 思维导图
思维导图的节点具有层级关系和隶属关系,很像枝叶从树干伸展开来的形状.在前面讲解布局的时候,提到有五个布局是由层级布局扩展来的,其中的树状图(tree layout)和集群图(cluster layou ...
- c#、sql、asp.net、js、ajax、jquery大学知识点笔记
<table cellSpacing="0" cellPadding="0" width="609" height="470 ...
- JS高级-数据结构的封装
最近在看了<数据结构与算法JavaScript描述>这本书,对大学里学的数据结构做了一次复习(其实差不多忘干净了,哈哈).如果能将这些知识捡起来,融入到实际工作当中,估计编码水平将是一次质 ...
- Ext JS中的typeOf
Ext JS中的typeOf:以字符串格式,返回给定变量的类型 其中对字符串对象.元素节点.文本节点.空白文本节点判断并不准确 测试代码如下: <!DOCTYPE HTML PUBLIC &qu ...
- js一些梳理
浏览器组成 1.Shell部分2.内核内核的组成 1.渲染引擎 负责页面显示 2.JS引擎 3. 其他模块主流内核介绍 >> * Trident(IE内核) >> * Geck ...
- 抛开jQuery,拾起原生JS的DOM操作
常用的JS-DOM操作与jQuery的对比 jQuery用多了,还是需要来熟练熟练原生JS的操作,不然写JS都快离不开jQuery了 目录 1. 获取DOM 2. 创建DOM 3. 添加DOM 4. ...
- js中的DOM操作汇总
一.DOM创建 DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性.DOM节点有一个nodeType属性用来表示当前元素的类型,它是一个整数: Element,元素 Attrib ...
- vis.js绘图库的一个BUG以及源码修正
1. BUG 1.1 BUG触发情况 在使用vis.js绘图时,加入两个节点A和B之间既存在一条从A指向B的边,同时也存在一条从B指向A的边,那么这个绘图库就会崩溃. 1.2 BUG解析 vis.js ...
随机推荐
- # 20175120 2018.3.3 《Java程序设计》第1周学习总结
## 教材学习内容总结 1.安装ubuntu,在实验楼学习liunx系统各种功能的实现.2.在ubuntu平台上进行java程序的编写3.学会使用JDB调试java程序,并将代码上传到码云上4.学习j ...
- day08 学习小测试 九九乘法表 车牌划分计算 大文件读取操作
1.1需求:读取一个100G的文件,检测文件中是否有关键字keys=['苍老师','小泽老师',"alex"], 如果有则替换成"***",并写入到另一个文件中 ...
- torchvision里densenet代码分析
#densenet原文地址 https://arxiv.org/abs/1608.06993 #densenet介绍 https://blog.csdn.net/zchang81/article/de ...
- 安装phpssdbadmin
1:先安装nginx+php 参考博文:http://www.cnblogs.com/lemon-le/p/7161356.html 里面有详细的搭建lnmp架构,这里只需参照安装php和ngin ...
- sourcetree file status checkbox gone (文件状态下的勾选文件 list 消失)
原来是这样的(sourcetree 版本 2.7.1) 不知道触发了什么条件,sourcetree 变成了以下状态(官方解释是拖动面板小于 1 px 后会导致这个问题) 中间的那一列可勾选的已修改的文 ...
- 文件-- 字节相互转换(word、图片、pdf...)
方式一: /// <summary> /// word文件转换二进制数据(用于保存数据库) /// </summary> /// <param name="wo ...
- 阿里四不像Fourinone
阿里四不像——分布式核心技术框架 Fourinone https://blog.csdn.net/shero_zsmj/article/details/52277194
- windows time-wait 问题处理记录
问题描述:有一段时间,服务器启动了好多程序,做的是 obd监听服务,连接好多个服务器,由于程序的本身的问题造成大量的wait-time,一番百度后找到找到方案1 设置一由于wait-time 需要经过 ...
- centos下vi的用法大全
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...
- 二叉树遍历(flist)(已知中序和按层遍历,求先序 )
问题 F: 二叉树遍历(flist) 时间限制: 1 Sec 内存限制: 128 MB提交: 11 解决: 9[提交][状态][讨论版][命题人:quanxing][Edit] [TestData ...