【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問題解決。