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