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');
            }
          });
        });
      });
    } */
    

      

  • 相关阅读:
    Android ImageView设置图片原理(下)
    C++ 虚函数表 多重继承
    C++ 虚函数表 单继承
    私有继承
    内联函数和宏定义的区别
    #pragma pack(x) CPU对齐
    static 变量(静态变量)
    C++ 中const作用
    如何连接宏参数
    几种常见容器比较和分析 hashmap, map, vector, list ...hash table
  • 原文地址:https://www.cnblogs.com/vsmart/p/11244372.html
Copyright © 2011-2022 走看看