使用node搭建的小爬虫 - 前端笔记-1.这里使用的node +cheerio 搭建的一个小爬虫 node 不用讲了 都知道是什...

学习笔记

点滴记忆
回忆过往
首页>> web后端 >>使用node搭建的小爬虫 - 前端笔记
1. 这里使用的 node + cheerio  搭建的一个小爬虫
        node  不用讲了  都知道是什么
        cheerio  是一个在node端 的jquert  可以对爬取的页面数据 想 jquery一样去处理

2.使用的node的内置模块 https 先爬取一下网站(注意:一定是https的如果爬取http的 ,请修改一下,下面的代码)   
// 引入 https 模块
const https = require('https')

// 定义一个爬取的 url网址
let url = 'https://blog.dbsgw.cn/'

// 通过 https 发送一个请求
https.get(urlres => {
  //拼接请求流
  let chunks = []

  // 接收的请求流 字段
  res.on('data'function(chunk) {
    // 把请求流  字段 放到 上面定义的数组中去

    chunks.push(chunk)
  })

  // 接收请求流的 触发事件
  res.on('end'function() {
    console.log('数据包传输完毕')

    // 把 接收完的数组   进行concat拼接 利用Tostring 转码为 utf-8  方便查看
    let html = Buffer.concat(chunks).toString('utf-8')

    console.log(html)
  })
})




3. 通过上面的代码 你会发现 ,你爬取到的是一些html标签, 但是都不是你想的 你想要的是 html标签的部分  内容  那么就可以通过   cheerio这个node(服务器)版  jQuery来 获取    你想的 内容  
        
    
        ①安装    npm i cheerio 

        ②使用dome
const cheerio = require('cheerio')
const $ = cheerio.load('<h2 class="title">Hello world</h2>')

$('h2.title').text('Hello there!')
$('h2').addClass('welcome')

$.html()
//=> <html><head></head><body><h2 class="title welcome">Hello there!</h2></body></html>

        ③结合cheerio 获取指定   爬取的 内容
// 引入 https 模块
const https = require('https')
// 引入cheerio这个包
const cheerio = require('cheerio')

// 定义一个爬取的 url网址
let url = 'https://blog.dbsgw.cn/'

// 通过 https 发送一个请求
https.get(urlres => {
  //拼接请求流
  let chunks = []

  // 接收的请求流 字段
  res.on('data'function(chunk) {
    // 把请求流  字段 放到 上面定义的数组中去

    chunks.push(chunk)
  })

  // 接收请求流的 触发事件
  res.on('end'function() {
    console.log('数据包传输完毕')

    // 把 接收完的数组   进行concat拼接 利用Tostring 转码为 utf-8  方便查看
    let html = Buffer.concat(chunks).toString('utf-8')

    // 通过 cheerio.load(html)  转换成 cheerio 能处理的 元素
    const $ = cheerio.load(html)

    // 通过 $('.content')  类似于css3选择器方式    获取内容   是不是很方便
    console.log($('.content').html())
  })
})



    一个简单的  node 爬虫就实现了     数据都获取到了 在存到数据库    就很简单了吧    这里就不演示保存数据了


获取网页图片小案例
// 引入 https 模块
const https = require('https')
// 引入cheerio这个包
const cheerio = require('cheerio')

// 定义一个爬取的 url网址
let url = 'https://blog.dbsgw.cn/'

// 通过 https 发送一个请求
https.get(urlres => {
  //拼接请求流
  let chunks = []

  // 接收的请求流 字段
  res.on('data'function(chunk) {
    // 把请求流  字段 放到 上面定义的数组中去

    chunks.push(chunk)
  })

  // 接收请求流的 触发事件
  res.on('end'function() {
    console.log('数据包传输完毕')

    // 把 接收完的数组   进行concat拼接 利用Tostring 转码为 utf-8  方便查看
    let html = Buffer.concat(chunks).toString('utf-8')

    // 通过 cheerio.load(html)  转换成 cheerio 能处理的 元素
    const $ = cheerio.load(html)

    //通过  Array原型上面的内容获取网页上的图片
    // const html_body = Array.prototype.map.call($('img'), item =>
    //   $(item).attr('src')
    // )

    // 通过循环获取
    const html_body = []
    $('img').each((indexitem=> {
      html_body.push($(item).attr('src'))
    })
    // 通过 $('.content')  类似于css3选择器方式    获取内容   是不是很方便
    console.log(html_body)
  })
})






×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:前端笔记 » 使用node搭建的小爬虫

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)