美文网首页
用普通方式来爬虫某网站的某一类型的美女图片

用普通方式来爬虫某网站的某一类型的美女图片

作者: 燃烧星星之火 | 来源:发表于2018-11-06 21:23 被阅读0次

//导入require包

let http = require("http");

let fs = require("fs");

let path = require("path");

let cheerio = require("cheerio");

let iconv = require("iconv-lite");

//爬虫指定网站的所有html源码

http.get("http://www.27270.com/ent/meinvtupian/", (response) => {

    let chunks = []

    response.on("data", (chunk) => {

        //将读到的每一份数据存到一个数组中

        chunks.push(chunk)

    })

    response.on("end", () => {

        // 对数据重新进行编解码

        var htmlTar = iconv.decode(Buffer.concat(chunks), 'gb2312');

        //自定义一个解析页面并获取图片资源的方法

        let result = parseHtml(htmlTar);

        //自定义一个下载图片的方法

        download(result)

    })

})

//解析源码,并获取所要下载的图片放到一个数组中

function parseHtml(htmlTar) {

    //加载爬虫下来的html源码

    let $ = cheerio.load(htmlTar);

    let result = []

    //将自己想要的某种类型的图片转成一个数组

    let imgArr = $("div.MeinvTuPianBox>ul>li>a>i>img").toArray();

    imgArr.forEach(img => {

        //遍历数组,并获取其src和alt属性

        let imgSrc = $(img).attr("src");

        let imgAlt = $(img).attr("alt");

        result.push({//将src和alt属性封装成一个对象{},并存入数组中

            imgSrc,

            imgAlt

        })

    })

    return result

}

//下载数组中的图片

function download(result) {

    //自定义一个下载目录

    let dir = "imgs"

    for (let i = 0; i < result.length; i++) {

        //遍历数组中的每个对象,获取src和alt属性

        let downpath = result[i].imgSrc

        let filename = result[i].imgAlt

        http.get(downpath, (response) => {

            //对每个对象进行下载操作,http.get()方法用来获取下载图片的请求

            let extname = path.extname(downpath);//获取图片后缀

            let filepath = path.join(dir, filename + extname)//拼接下载的图片到本地的完整路径

            let writeStream = fs.createWriteStream(filepath);//根据完整路径创建一个写入流

            response.pipe(writeStream)//利用pipe方法,之类response就是一个读入流

        })

    }

}

相关文章

  • 用普通方式来爬虫某网站的某一类型的美女图片

    //导入require包let http = require("http");let fs = require("...

  • 用监听事件来爬虫某网站的某一类型的美女图片

    let http = require("http");let fs = require("fs");let pat...

  • python爬取性感美女图片

    需求:最近对python爬虫感兴趣,于是也依葫芦画瓢试着用爬虫爬取之前喜欢的网站上的美女图片,网站: http:/...

  • 百川创业日志-2

    图片网站首先要解决的是图片的来源问题。目前有这几种方式来做, 1. 爬虫抓取特定网站的图片 2.自己找有版权的或者...

  • 多线程提提速吧

    爬虫用线程提速吧,用斗图网来做个对比。 普通爬虫,没用线程的例子: 这里获取一页68图片,看一下运行速度: 生产者...

  • Python 实现识别弱图片验证码

    目前,很多网站为了防止爬虫肆意模拟浏览器登录,采用增加验证码的方式来拦截爬虫。验证码的形式有多种,最常见的就是图片...

  • 2020-03-13

    仙女姐姐@chuu chloe和@什么七七——python图片爬虫 两年以前用爬虫爬过一个学校网站,现在忘得那是一...

  • python爬取千图网高清图

    一、scrapy图片爬虫构建思路 1.分析网站2.选择爬取方式与策略3.创建爬虫项目 → 定义items.py4....

  • Python Webscraping

    Python作为强大的脚本语言,非常适合编写网络爬虫。在实际开始编写爬虫获取某一个网站数据的时候,应当对某一个网站...

  • 爬虫工程师劝退文

    前言:本文无源码,来聊聊爬虫工程师终将逝去的青春 此刻的我正坐在工位上,看着面前的某网站爬虫代码,陷入了回忆。 缘...

网友评论

      本文标题:用普通方式来爬虫某网站的某一类型的美女图片

      本文链接:https://www.haomeiwen.com/subject/hjepxqtx.html