问题
来源:10-5 爬虫代码实现1

前端工程师666777888
2018-12-08
mn.js中代码
const puppeteer = require(‘puppeteer’);
const {mn}=require(’./config/default’);
const srcToImg=require(’…/helper/srcToImg’);
(async () => { //异步执行函数
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(‘https://image.baidu.com/’);
console.log(‘go to https://image.baidu.com/’);
//改变浏览器窗口
await page.setViewport({
width:1920,
height:1080
});
await page.focus(’#kw’);//获得焦点,写入input输入框的id
await page.keyboard.sendCharacter(‘狗’);//模拟键盘输入字符
await page.click(’.s_search’);//模拟鼠标的点击‘百度一下’
console.log(‘go to search list’);
//等待列表页加载完成
//images并没有map方法,通过call
page.on(‘load’,async ()=>{
console.log(‘图片加载完成,可以获取图片了’);
const srcs=await page.evaluate(()=>{
const images=document.querySelectorAll(‘img.main_img’);
return Array.prototype.map.call(images,img=>img.src);
})
console.log(get${srcs.length} images,start download
);
srcs.forEach(src=>{
srcToImg(src,mn);
})
});
await browser.close();
})();
srcToImg.js中的代码
module.exports=(src,dir)=>{
console.log(src);
};
我的怎么没有执行 console.log(‘图片加载完成,可以获取图片了’);
3回答
-
慕后端8381663
2019-08-07
await browser.close()的位置放错了,我就是这样,提前close了
00 -
Samaritan
2019-01-06
可以尝试看看 package.json 中的版本号,因为我在讲课的时候还是 0.x 现在都已经是 1.x 了,API 可能发生了变化
00 -
易路3227415
2018-12-27
你可以开启试图模式,在界面上检查你具体走到哪步了,显然是没有加载完成,肯定触发不了回调,看是选择器写错了,还是其他问题
00
相似问题