【01 】html
1. 初次安装:在网上找的教程,经过淘宝镜像安装的npm
2. 若是安装以后,又新建项目时,须要从新为新建项目安装puppeteer:less
在新建的项目文件目录的终端,运行:异步
npm -vasync
cnpm -v学习
cnpm i puppeteer #若是肯定以前的都安装了,前两个应该不须要执行了吧ui
参考:https://www.cnblogs.com/Owen-ET/p/8064384.html视频
【02 】htm
报错的问题,昨晚一直没有解决,对比学习视频,没有发现差别;今早从新再看,几分钟就找到了解决办法blog
昨晚的思路一直在查找代码问题,直接对比;今早直接将报错内容在网页上查找的。
内容:
const puppeteer = require('puppeteer');
async function run (){
const browser = await puppeteer.launch({headless:false, defaultViewport: {width: 1300, height:700}});
// 须要在puppeteer.launch 前添加‘await’,由于
const page = await browser.newPage();
await page.goto('https://www.baidu.com');
const input_area = await page.$("#kw");
await input_area.type("hello world");
const search_btn = await page.$('#su');
await search_btn.click();
}
run ();
执行后产生异常:
UnhandledPromiseRejectionWarning: TypeError: browser.newPage is not a function
查阅puppeteer手册,关于launch返回值定义。能够看到是一个异步方法。
puppeteer.launch([options])
returns: <Promise<Browser>> Promise which resolves
to browser instance1234
错误代码中调用launch马上返回,browser并未指向任何实例。
所以browser.newPage()方法爆出is not a function错误。在puppeteer.launch()前加上await问题解决。