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 ('\r\n'), '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'); } }); }); }); } */