使用node.js的puppeteer获取网站的图片url,使用puppeteer还是可以做蛮多的。
const puppeteer=require('../..../.../puppeteer');//存放puppeteer的绝对路径或着相对路径
const fs=require('../.../.../fs-extra');//同上
(async()=>{
try{
const browser=await puppeteer.launch({handless:false});//可以添加一项devtools,可以看到实际执行过程,devtools:true;
const page=await browser.newPage();
await page.goto('http://www.netbian.com/');
await fs.writeFile('url.csv','section,url\n');
console.log('its showing...');
await page.setViewport({
width:1000,
height:600
})
await page.focus('.ipt');
await page.keyboard.sendCharacter('输入你想搜索的图片名称...');
await page.click('.sub');
await page.waitForSelector('.nextpage');
let exit=await page.$$('.nextpage');
let sum=0;
while(exit.length>0){
await page.waitForSelector('.list ul li');
const info_s=await page.$$('.list ul li');
for(let i=0;i<info_s.length-1;i++){
const info=info_s[i];
const info_url=await info.$eval('a img',img=>img.src);
console.log(info_url);
sum+=1;
await fs.appendFile('url.csv',`"${sum}","${info_url}"\n`);
}
exit=await page.$$('.nextpage');
if(!exit.length){
break;
}
await page.click('.page a:last-child');
}
console.log('get '+sum);
browser.close();
}catch(e){
console.log(e);
}
})()
最后会生成一个exel文档,里面会有所有图片的url;