nodeJs爬虫获取数据

var http=require(‘http‘);
var cheerio=require(‘cheerio‘);//页面获取到的数据模块
var url=‘http://www.jcpeixun.com/lesson/1512/‘;
function filterData(html){
    /*所要获取到的目标数组    var courseData=[{
        chapterTitle:"",
        videosData:{
            videoTitle:title,
            videoId:id,
            videoPrice:price
        }
    }] */
    var $=cheerio.load(html);
    var courseData=[];
    var chapters=$(".list-collapse");
    chapters.each(function(item){
        var chapterTitle=$(this).find(".collapse-head").find("label").text();
        var videos=$(this).find(".listview5").children("li");
        var chaptersData={
            chaptersTitle:chapterTitle,
            videosData:[]
        }
        videos.each(function(item){
            var videoTitle=$(this).find(".ml10").attr(‘data-lesson-name‘);
            var videoId=$(this).find(".ml10").attr(‘data-lesson-id‘);
            var vadeoPrice=$(this).find(".colblue").text();
            chaptersData.videosData.push({
                title:videoTitle,
                id:videoId,
                price:vadeoPrice
            })
        })
        courseData.push(chaptersData)
    })
    return courseData
}
function printCourseInfo(courseData){
    courseData.forEach(function(item){
        console.log(item.chaptersTitle+‘\n‘);
        item.videosData.forEach(function(item){
            console.log(item.title+‘【‘+item.id+‘】‘+item.price+‘\n‘)
        })
    })
}
http.get(url,function(res){
    html="";
    res.on("data",function(data){
        html+=data
    })
    res.on(‘end‘,function(){
        var courseData=filterData(html);
        printCourseInfo(courseData)
    })
})

打开CMD,进行node环境,运行js,可以看到已经获取到了数据;

时间: 2024-11-10 07:58:09

nodeJs爬虫获取数据的相关文章

nodejs发起HTTPS请求并获取数据

var https = require('https'); var zlib = require('zlib'); var post_data="………………";//请求数据 var reqdata = JSON.stringify(post_data); var options = { hostname: '10.225.***.***', port: '8443', path: '/data/table/list', method: 'POST', rejectUnauthoriz

nodejs 通过 get获取数据修改redis数据

如下代码是没有报错的正确代码 我通过https获取到数据 想用redis set一个键值存储 现在我掉入了回调陷阱res.on 里面接收到的数据是data 里面如果放入 client.on('connect',functi ...这个修改函数就会报错. 'use strict'; var redis = require('redis'), RDS_PORT = 6379, //端口号 RDS_HOST = '127.0.0.1', //服务器IP //RDS_PWD = 'porschev',

网络爬虫模拟登陆获取数据并解析实战(二)

目录 分析要获取的数据 程序的结构 构建封装数据的model 模拟登陆程序并解析数据 结果展示 分析要获取的数据 下面继续实战,写一个模拟登陆获取汽车之家,用户信息的程序.如果大家对模拟登陆获取数据不太了解,建议看完http://blog.csdn.net/qy20115549/article/details/52249232,我写的这篇含有抓包获取人人网数据的案例程序,研究透之后,再来看这个要轻松很多. 首先,大家打开汽车之家这个网站(http://i.autohome.com.cn/7741

Python2爬虫获取的数据存储到MySQL中时报错"Incorrect string value: '\\xE6\\x96\\xB0\\xE9\\x97\\xBB' for column 'new' at row 1"的解决办法

由于一直使用python3进行编码,在使用Python2时,将爬虫数据连接数据库进行存储时,出现如上的报错,经查资料 是数据库编码问题. 如下转自:http://www.cnblogs.com/liuzhixin/p/6274821.html 的博客,在此感谢博主的慷慨分享之情. 错误原因:我们可以看到错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范).正常的汉字一般不会超过3个字节,为什么为出现4个字节呢?实际上是它对应的是智

Python实现简单的爬虫获取某刀网的更新数据

昨天晚上无聊时,想着练习一下Python所以写了一个小爬虫获取小刀娱乐网里的更新数据 [python] view plain copy #!/usr/bin/python # coding: utf-8 import urllib.request import re #定义一个获取网页源码的子程序 head = "www.xiaodao.la" def get(): data = urllib.request.urlopen('http://www.xiaodao.la').read(

如何通过网络爬虫获取网站数据

我们知道,网络爬虫是一种按照一定的规则,自动地抓取网站信息的程序或者脚本.那么,我们怎么通过网络爬虫获取所需要的网站信息呢?不同的网站有不同的规则,爬虫工程师根据这些规则设计不同的网络爬虫,以此来顺利获取所需要的信息.一.开放API的网站一个网如果开放了API,那么就可以直接GET到它的json数据.有三种方法可以判断一个网站是否开放了API.1.在站内寻找API入口:2.用搜索引擎搜索"某网站API":3.抓包,有的网站虽然用到了ajax,但是通过抓包还是能够获取XHR里的json数

NodeJS express跨域获取数据

这几天一直在研究NodeJS跨域获取数据的事情,然后找到了一个好用的模块request. 一.先把咱们的主要模块引用进来: 这里我使用的是express var express = require('express');var router = express.Router();var request = require('request');request需要安装,方法为:npm install ––save request 二.路由部分 router.get('/',function(req

Nodejs爬虫进阶教程之异步并发控制

Nodejs爬虫进阶教程之异步并发控制 之前写了个现在看来很不完美的小爬虫,很多地方没有处理好,比如说在知乎点开一个问题的时候,它的所有回答并不是全部加载好了的,当你拉到回答的尾部时,点击加载更多,回答才会再加载一部分,所以说如果直接发送一个问题的请求链接,取得的页面是不完整的.还有就是我们通过发送链接下载图片的时候,是一张一张来下的,如果图片数量太多的话,真的是下到你睡完觉它还在下,而且我们用nodejs写的爬虫,却竟然没有用到nodejs最牛逼的异步并发的特性,太浪费了啊. 思路 这次的的爬

NodeJS爬虫系统初探

NodeJS爬虫系统 NodeJS爬虫系统 0. 概论 爬虫是一种自动获取网页内容的程序.是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上是针对爬虫而做出的优化. robots.txt是一个文本文件,robots.txt是一个协议,不是一个命令.robots.txt是爬虫要查看的第一个文件.robots.txt文件告诉爬虫在服务器上什么文件是可以被查看的,搜索机器人就会按照该文件中的内容来确定访问的范围. 一般网站的robots.txt查找方法: 例如www.qq.com http://ww