nodejs小爬虫

Amy鱼      2022-02-12     499

关键词:

记得先装载http这个模块

打开cmd  :npm install http -g

var http=require(‘http‘)
var url=‘http://www.imooc.com/learn/348‘

http.get(url,function(res){
var html=‘‘
res.on(‘data‘,function(data){
html +=data
})
res.on(‘end‘,function(){
console.log(html)
})
}).on(‘error‘,function(){
console.log(‘获取出错‘)
})

  

cmd:node一下,出来网页源码

 

然后npm install cheerio -g

用慕课网做测试哈哈哈  ,这里要说明一点:代码和课程中是不一样的,因为网站改动了源代码,class之类的名字换掉了,所以之前的爬虫爬不出来的。还好知道原理以后自己去改就可以了。

/**
 * Created by Amy on 2017/7/13.
 */
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(‘strong‘).text()
        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]

            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+‘
‘)
        item.videos.forEach(function(video){
            console.log(‘[‘+video.id+‘]‘+video.title+‘
‘)
        })
    })
}
http.get(url,function(res){
    var html=‘‘
    res.on(‘data‘,function(data){
        html +=data
    })
    res.on(‘end‘,function(){
        var courseData=  filterChapters(html)
        printCourseInfo(courseData)
    })
}).on(‘error‘,function(){
    console.log(‘获取出错‘)
})

  去node一下试试,好神奇吧。

 

nodejs之小爬虫

一、简单的单页面varhttp=require(‘http‘)varurl=‘http://www.imooc.com/learn/348‘http.get(url,function(res){  varhtml=‘‘//有data触发时res.on(‘data‘,function(data){html+=data})res.on(‘end‘,function(){console.log(html 查看详情

nodejs爬虫入门

1.写在前面往常都是利用Python/.NET语言实现爬虫,然现在作为一名前端开发人员,自然需要熟练NodeJS。下面利用NodeJS语言实现一个糗事百科的爬虫。另外,本文使用的部分代码是es6语法。实现该爬虫所需要的依赖库如下。request:利... 查看详情

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

 代码:1varhttp=require("http");23varcheerio=require("cheerio");456varurl=‘http://www.imooc.com/learn/348‘;789http.get(url,function(res){10varhtml=‘‘;1112res.on(‘data‘,function(data){13html+=data;14 查看详情

简单实现nodejs爬虫工具

约30行代码实现一个简单nodejs爬虫工具,定时抓取网页数据。 使用npm模块request---简单http请求客户端。(轻量级)fs---nodejs文件模块。 index.jsvarrequest=require(‘request‘);varfs=require("fs");varJJurl="https://recommender-api-ms.juejin.im/v 查看详情

nodejs爬虫简单编写

nodejs爬虫原理,先用request请求页面内容,把内容获取到并iconv-lite设置编码格式,再用cheerio进行类似dom操作合并内容,转换写入文件中1)获取单页面数据:varfs=require(‘fs‘)varrequest=require(‘request‘)variconvLite=require(‘iconv-lite‘)v... 查看详情

nodejs爬虫入门

nodejs是服务器端的语言,所以可以像python一样对网站进行爬取。准备1.项目初始化,执行npminit,来初始化package.json2.npminstallrequest—save3.npminstallasync--save文件中需要引入的包varrequest=require(‘request‘);varfs=require(‘fs‘);varasync=requi... 查看详情

nodejs爬虫笔记

 目标:爬取慕课网里面一个教程的视频信息,并将其存入mysql数据库。以http://www.imooc.com/learn/857为例。 一、工具 1.安装nodejs:(操作系统环境:WiN764位)   在Windows环境下安装相对简单(ps:其他版本我也不太清... 查看详情

nodejs制作爬虫程序

在nodejs中,可以通过不断对服务器进行请求,以及本身的fs =》filesystem模块和clientRequest模块对网站的资源进行怕取,目前只做到了对图片的趴取!视频文件格式各异,有的视频网站上视频可能是加密过的。无法爬取来;‘usestr... 查看详情

nodejs爬虫使用async控制并发写一个小说爬虫

最近在做一个书城项目,数据用爬虫爬取,百度了一下找到这个网站,以择天记这本小说为例。爬虫用到了几个模块,cheerio,superagent,async。superagent是一个http请求模块,详情可参考链接。cheerio是一个有着jQuery类似语法的文档... 查看详情

nodejs——简单小说爬虫实现

1//引入模块2consthttp=require(‘http‘)3constfs=require(‘fs‘)4constcheerio=require(‘cheerio‘)5consticonv=require(‘iconv-lite‘)6//第一章url7consturl=‘http://www.81zw.com/book/8634/745331.html‘8//开始章节数9leti=110/ 查看详情

nodejs爬虫selenium

6、元素操作查找元素使用操作如何找到页面元素Webdriver的findElement方法可以用来找到页面的某个元素,最常用的方法是用id和name查找。下面介绍几种比较常用的方法。ByID假设页面写成这样:<inputtype=”text”name=”userName”id=”u... 查看详情

基于nodejs的多页面爬虫

前言前端时间再回顾了一下node.js,于是顺势做了一个爬虫来加深自己对node的理解。 主要用的到是request,cheerio,async三个模块 request 用于请求地址和快速下载图片流。 https://github.com/request/request cheerio 为服... 查看详情

nodejs制作爬虫全过程

这篇文章主要介绍了NodeJS制作爬虫的全过程,包括项目建立,目标网站分析、使用superagent获取源数据、使用cheerio解析、使用eventproxy来并发抓取每个主题的内容等方面,有需要的小伙伴参考下吧。 今天来学习alsotang的爬虫教... 查看详情

nodejs实现一个简单的爬虫

nodejs是js语言,实现一个爬出非常的方便。 步骤1.使用nodejs的request模块,获取目标页面的html代码;https://github.com/request/request2.使用cheerio模块对html代码做处理(cheerio类似jQuery的语法,所以好用又方便)https://github.com/cheeriojs/c... 查看详情

nodejs爬虫笔记

思路:通过笔记(二)中代理的设置,已经可以对YouTube的信息进行爬取了,这几天想着爬取网站下的视频信息。通过分析YouTube,可以从订阅号入手,先选择几个订阅号,然后爬取订阅号里面的视频分类,之后进入到每个分类下... 查看详情

第一个nodejs爬虫:爬取豆瓣电影图片

第一个nodejs爬虫:爬取豆瓣电影图片存入本地:首先在命令行下npminstallrequestcheerioexpress-save;代码:varhttp=require(‘https‘);//使用https模块varfs=require(‘fs‘);//文件读写varcheerio=require(‘cheerio‘);//jquery写法获取所得页面dom元素varreques... 查看详情

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

...进阶教程之异步并发控制之前写了个现在看来很不完美的小爬虫,很多地方没有处理好,比如说在知乎点开一个问题的时候,它的所有回答并不是全部加载好了的,当你拉到回答的尾部时,点击加载更多,回答才会再加载一部分... 查看详情

nodejs爬虫模板map&array数据模型

app.get(‘/knowledge‘,function(req,res,next){varlistUid=req.query.listUid;varurl="http://www.lengdou.net/page/"+listUid+"/";//console.log(‘--------开始检测--------‘);varcontent={};varmap=newArray();superag 查看详情