• node 爬取图片并下载 到本地


    let puppeteer = require ('puppeteer');
    let request = require('request');
    // let https = require ('https');
    let fs = require ('fs');
    let url = 'http://www.xiaohuar.com/hua/';
    (async () => {
      const browser = await puppeteer.launch ();
      const page = await browser.newPage ();
      await page.goto (url, {
        waitUntil: 'networkidle2',
      });
      const imageSrcs = await page.$$eval ('div.img img', eles => {
        return eles.map (item => {
          return item.src;
        });
      });
      console.log (imageSrcs);
      fs.writeFileSync ('xiaohua.txt', imageSrcs.join ('
    '), 'utf8');
      downLoads (imageSrcs);
      await browser.close ();
    }) ();
    
    function downLoads (imageSrcs) {
      imageSrcs.forEach (url => {
        downLoad (url);
      });
    }
    
    
    function downLoad (url) {
        let imgData = '';
        let urlArr = url.split ('/');
        let fileName = urlArr[urlArr.length - 1];
        let stream = fs.createWriteStream('./xiaohua/'+fileName);
        request(url).on('error',()=>{
            console.log('donw no');   
        }).pipe(stream).on('close',()=>{
            console.log('upload success');
            
        })
      }
    
    /* function downLoad (url) {
      https.get (url, res => {
        let imgData = '';
        let urlArr = url.split ('/');
        let fileName = urlArr[urlArr.length - 1];
        res.setEncoding ('binary');
        res.on ('data', chunk => {
          imgData += chunk;
        });
        res.on ('end', () => {
          fs.writeFile ('./xiaohua', imgData, 'binary', err => {
            if (err) {
              console.log ('down fail');
            }else{
                console.log('down success');
            }
          });
        });
      });
    } */
    

      

  • 相关阅读:
    2017.4.18下午
    2017.4.18上午
    2017.4.17上午
    2017.4.14下午
    2017.4.14上午
    4.17下午
    4.17上午
    4.13下午
    4.13上午
    4.10上午
  • 原文地址:https://www.cnblogs.com/vsmart/p/11244372.html
Copyright © 2020-2023  润新知