利用nodeJS实现的网络小爬虫
var http=require("http");
var cheerio=require('cheerio');
var url="http://www.imooc.com/learn/348";
function filterCharpter(html){
var $=cheerio.load(html);
var charpters=$(".chapter");
console.log(typeof(charpters));
var courseData=[];
charpters.each(function(item){
var chapter=$(this);
chapter.find('strong').find('.chapter-content').remove();
var chapterTitle=chapter.find('strong').text().trim();
var videos=chapter.find('.video>li');
var charpterData={
chapterTitle:chapterTitle,
videos:[]
}
videos.each(function(item){
var video=$(this);
var videoTitle=video.find('.J-media-item').text().trim();
var viedoTitleData=videoTitle.split('\r\n');
console.log(viedoTitleData);
var id=video.data("media-id");
var viedoData={
videoTitle:viedoTitleData[0]+" "+viedoTitleData[1].trim(),
id:id
}
charpterData.videos.push(viedoData);
})
courseData.push(charpterData);
})
return courseData;
}
function printOut(courseData)
{
courseData.forEach(function(item){
console.log(item.chapterTitle+'\n');
item.videos.forEach(function(video){
console.log(" 【"+video.id+"】"+ video.videoTitle);
})
})
}
var server=http.get(url,function(res){
var html="";
res.on('data',function(data){
html+=data
})
res.on('end',function(){
var courseData=filterCharpter(html);
printOut(courseData);
})
}).on('error',function(){
console.log("error")
});
利用nodeJS实现的网络小爬虫的更多相关文章
- Python 基于学习 网络小爬虫
<span style="font-size:18px;"># # 百度贴吧图片网络小爬虫 # import re import urllib def getHtml( ...
- Python练习,网络小爬虫(初级)
最近还在看Python版的rcnn代码,附带练习Python编程写一个小的网络爬虫程序. 抓取网页的过程其实和读者平时使用IE浏览器浏览网页的道理是一样的.比如说你在浏览器的地址栏中输入 www ...
- nodejs http小爬虫
本课程用nodejs写一个http小爬虫,首先科普一下,爬虫就是把网上的网页代码给弄下来,然后纳为己用.目前最大的爬虫:百度快照等的. 下面直接上代码 示例一: var http = require( ...
- Python 利用Python编写简单网络爬虫实例3
利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...
- Python 利用Python编写简单网络爬虫实例2
利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...
- nodejs .http模块, cheerio模块 实现 小爬虫.
代码: var http = require("http"); var cheerio = require("cheerio"); var url = 'htt ...
- [Nodejs] 用node写个爬虫
寻找爬取的目标 首先我们需要一个坚定的目标,于是找个一个比较好看一些网站,将一些信息统计一下,比如 url/tag/title/number...等信息 init(1, 2); //设置页数,现在是1 ...
- Java豆瓣电影爬虫——小爬虫成长记(附源码)
以前也用过爬虫,比如使用nutch爬取指定种子,基于爬到的数据做搜索,还大致看过一些源码.当然,nutch对于爬虫考虑的是十分全面和细致的.每当看到屏幕上唰唰过去的爬取到的网页信息以及处理信息的时候, ...
- 放养的小爬虫--豆瓣电影入门级爬虫(mongodb使用教程~)
放养的小爬虫--豆瓣电影入门级爬虫(mongodb使用教程~) 笔者声明:只用于学习交流,不用于其他途径.源代码已上传github.githu地址:https://github.com/Erma-Wa ...
随机推荐
- MySQL 5.7 mysqlpump 备份工具说明
背景: MySQL5.7之后多了一个备份工具:mysqlpump.它是mysqldump的一个衍生,mysqldump就不多说明了,现在看看mysqlpump到底有了哪些提升,可以查看官方文档,这里针 ...
- Magento 创建新的数据实体 model 、 resource 和 collection 文件
一.创建model文件 class Bestbuy_PrepaidCard_Model_Used extends Mage_Core_Model_Abstract { protected ...
- iOS开发多线程篇 — GCD的常见用法
一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) withObject:nil ...
- JS省市区三级联动
不需要访问后台服务器端,不使用Ajax,无刷新,纯JS实现的省市区三级联动. 当省市区数据变动是只需调正js即可. 使用方法: <!DOCTYPE html><html>< ...
- VBA 获取Sheet最大行
compared all possibilities with a long test sheet: 0,140625 sec for lastrow = calcws.Cells.Find(&quo ...
- easyui tree loadFilter的使用
实例化.这里增加了三个属性,可以指定idFiled,textFiled和parentField.所以这里的simpleData可以不严格转换成tree的数据格式. $(function(){ $( ...
- Spatial Transformer Networks(空间变换神经网络)
Reference:Spatial Transformer Networks [Google.DeepMind]Reference:[Theano源码,基于Lasagne] 闲扯:大数据不如小数据 这 ...
- compass tables 表格 表格常见样式[Sass和compass学习笔记]
demo 源码 地址 https://github.com/qqqzhch/webfans compass 的表格提供了集中常见样式 表格边框 outer-table-borders($width, ...
- bzoj1468 Tree
最经典的点分治题目,在递归子树的时候减去在算父亲时的不合法方案. #include<iostream> #include<cstdio> #include<cstring ...
- Python In Action:三、稍稍扩展
#!/usr/bin/env python """Spare.py is a starting point for simple wxPython programs.&q ...