通过node搭建爬虫下载图片 - 前端笔记-1.使用 cheerio ,download 1.使用cheerio 处理数据 2.使用download 下载图片 &...

学习笔记

点滴记忆
回忆过往
首页>> web后端 >>通过node搭建爬虫下载图片 - 前端笔记
1. 使用  cheerio , download
    1.使用cheerio  处理数据
    2.使用download  下载图片
    注意:有些图片名称是中文  需要使用 encodeURL()   函数转码

npm i cheerio download

// 引入 https 模块
const https = require('https')
// 引入cheerio这个包
const cheerio = require('cheerio')
// 引入 download
const download = require('download')
// 定义一个爬取的 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=> {
      //encodeURI  转码  防止图片有中文
      html_body.push(encodeURI($(item).attr('src')))
    })
    // 通过 $('.content')  类似于css3选择器方式    获取内容   是不是很方便
    console.log(html_body)

    // 下载一张图片
    // download(html_body[0], 'dist').then(() => {
    //   console.log('下载成功')
    // })
    // 下载 网页所有图片
    Promise.all(html_body.map(x => download(x'dist'))).then(() => {
      console.log('下载所有图片')
    })
  })
})

























×

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

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

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

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

打赏作者
版权所有,转载注意明处:前端笔记 » 通过node搭建爬虫下载图片

发表评论

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

网友评论(0)