zoukankan      html  css  js  c++  java
  • 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');
            }
          });
        });
      });
    } */
    

      

  • 相关阅读:
    【poj1182】 食物链
    【bzoj1013】 JSOI2008—球形空间产生器sphere
    【codevs1200】 NOIP2012—同余方程
    【poj2891】 Strange Way to Express Integers
    【bzoj2819】 Nim
    【bzoj2463】 谁能赢呢?
    【poj3537】 Crosses ans Crosses
    【bzoj2115】 Xor
    下载时出现using cached如何解决
    如何设计一个"好的"测试用例?
  • 原文地址:https://www.cnblogs.com/vsmart/p/11244372.html
Copyright © 2011-2022 走看看