问题

来源: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了

0
0

Samaritan

2019-01-06

可以尝试看看 package.json 中的版本号,因为我在讲课的时候还是 0.x 现在都已经是 1.x 了,API 可能发生了变化

0
0

易路3227415

2018-12-27

你可以开启试图模式,在界面上检查你具体走到哪步了,显然是没有加载完成,肯定触发不了回调,看是选择器写错了,还是其他问题

0
0

Node.js入门到企业Web开发中的应用

Node.js是Web应用开发的一个福音,特别适合中小型系统的快速开发!

1580 学习 · 303 问题

查看课程