nodejs 之 小爬虫

一、简单的单页面

var http = require(‘http‘) var url = ‘http://www.imooc.com/learn/348‘
http.get(url,function(res){
  var html = ‘‘
    //有data触发时
    res.on(‘data‘,function(data){
        html += data
    })
    res.on(‘end‘,function(){
        console.log(html)
    })
//出现异常时
}).on(‘error‘,function(){
    console.log(‘获取出错‘)
})

var server = http.createServer(function(req,res){
        res.writeHead(200,{‘Content-Type‘:‘text/plain‘})
        res.end();
    })
server.listen(2017)

  

运行结果

二、获取页面的课程列表

安装cheerio

cmd 执行命令 npm install  cheerio 然后就可以require cheerio

var http = require(‘http‘)
var cheerio = require(‘cheerio‘)
var url = ‘http://www.imooc.com/learn/348‘
//过滤页面,获取到列表的名称与id等信息  与javascript方法一致
function filterChapters(html){
    var $ = cheerio.load(html)
    // console.log($)
    var chapters = $(‘.chapter‘)

    var courseData = []
    chapters.each(function (item) {
        var chapter = $(this)
        var chapterTitle = chapter.find(‘strong‘).text()
        var videos = chapter.find(‘.video‘).children(‘li‘)
        var chapterData = {
            chapterTitle:chapterTitle,
            video:[]
        }
        // console.log(videos + ‘24‘)
        videos.each(function(item){
            // var video = $(this).find(‘.studyvideo‘)
            var videoTitle = $(this).text()
            var id = $(this).attr("data-media-id")

            chapterData.video.push({
                title:videoTitle,
                id:id
            })
        })
        courseData.push(chapterData)
    })
    return courseData
}
//将获取到的信息打印出来
function printCourseInfo(courseData) {
    courseData.forEach(function(item){
        var chapterTitle = item.chapterTitle
        item.video.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(){
        //过滤页面信息
        // console.log(html)
        var courseData = filterChapters(html)
        printCourseInfo(courseData)
    })
}).on(‘error‘,function(){
    console.log(‘获取出错‘)
})

var server = http.createServer(function(req,res){
        res.writeHead(200,{‘Content-Type‘:‘text/plain‘})
        res.end();
    })
server.listen(1337)

运行结果

时间: 2024-10-09 05:43:59

nodejs 之 小爬虫的相关文章

NodeJs编写小爬虫

一,爬虫及Robots协议 爬虫,是一种自动获取网页内容的程序.是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化. robots.txt是一个文本文件,robots是一个协议,而不是一个命令.robots.txt是爬虫要查看的第一个文件.robots.txt文件告诉爬虫在服务器上什么文件是可以被查看的,搜索机器人就会按照该文件中的内容来确定访问的范围. 如上图,我们可以在网站中直接访问robots.txt文件查看网站禁止访问和允许访问的文件. 二,使用NodeJs爬去

用NodeJs做一个小爬虫

作者:北京起步科技前端研究员,专注分享HTML5 App快速开发工具 WeX5 的黑魔法以及相应的前端技术. 前言 利用爬虫可以做很多事情,单身汉子们可以用爬虫来收集各种妹子情报,撩妹族们可以用爬虫收集妹子想要的小东西,赚大钱的人可以用来分析微博言论与股票涨跌的关系诸如此类的,简直要上天了. 你们感受一下 点我点我: 蠢蠢欲动 抛开机器学习这种貌似很高大上的数据处理技术,单纯的做一个爬虫获取数据还是非常简单的.对于前段er们来说,生在有nodejs的年代真是不要太幸福了,下面就用nodejs来做

HTTP小爬虫 ,nodejs学习(二)

使用nodejs抓取网页数据,这里用到cheerio,解析html十分好用,和jquery用法完全一致. 首先安装cheerio,在命令行中输入 npm install cheerio;(在nodejs根目录下输入该命令) 安装完成以后,我们来解析慕课网上http://www.imooc.com/learn/348,获取其上的课程信息. 代码如下: var http = require('http'); var cheerio = require('cheerio'); var url = 'h

nodejs .http模块, cheerio模块 实现 小爬虫.

代码: 1 var http = require("http"); 2 3 var cheerio = require("cheerio"); 4 5 6 var url = 'http://www.imooc.com/learn/348'; 7 8 9 http.get(url, function(res){ 10 var html = ''; 11 12 res.on('data', function(data){ 13 html += data; 14 });

http 小爬虫

初学nodejs写一个http小爬虫,爬虫就是把网页上的代码爬下来. 代码: var http = require('http') //加载http模块var url = 'http://www.imooc.com/learn/713' http.get(url,function(res){   //get去请求url,此处以慕课网为例 var html = '' res.on('data',function(data){ html += data     //请求数据赋值给前面定义的html

一次使用NodeJS实现网页爬虫记

前言 几个月之前,有同事找我要PHP CI框架写的OA系统.他跟我说,他需要学习PHP CI框架,我建议他学习大牛写的国产优秀框架QeePHP. 我上QeePHP官网,发现官方网站打不开了,GOOGLE了一番,发现QeePHP框架已经没人维护了.API文档资料都没有了,那可怎么办? 毕竟QeePHP学习成本挺高的.GOOGLE时,我发现已经有人把文档整理好,放在自己的个人网站上了.我在想:万一放文档的个人站点也挂了, 怎么办?还是保存到自己的电脑上比较保险.于是就想着用NodeJS写个爬虫抓取需

Node.js(四)【HTTP小爬虫】

HTTP源码解读 HTTP性能测试 1 var http = require('http'); 2 3 http 4 .createServer(function (request, response) { 5 response.writeHead(200, {'Content-type': 'text/plain'}); 6 response.write('Hello Nodejs'); 7 response.end(); 8 }) 9 .listen(2016); 10 11 console

NodeJS写个爬虫,把文章放到kindle中阅读

这两天看了好几篇不错的文章,有的时候想把好的文章 down 下来放到 kindle 上看,便写了个爬虫脚本,因为最近都在搞 node,所以就很自然的选择 node 来爬咯- 本文地址:http://www.cnblogs.com/hustskyking/p/spider-with-node.html,转载请注明源地址. 所谓爬虫,可以简单理解为利用程序操作文件,只是这些文件不在本地,需要我们拉取过来. 一. 爬虫代码解析 1. 拿到目标页码源码 Node 提供了很多接口来获取远程地址代码,就拿

今天来做一个PHP电影小爬虫。

今天来做一个PHP电影小爬虫.我们来利用simple_html_dom的采集数据实例,这是一个PHP的库,上手很容易.simple_html_dom 可以很好的帮助我们利用php解析html文档.通过这个php封装类可以很方便的解析html文档,对其中的html元素进行操作 (PHP5+以上版本)下载地址:https://github.com/samacs/simple_html_dom下面我们以 http://www.paopaotv.com 上的列表页 http://paopaotv.com