puppeteer 的安裝與使用

【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問題解決。
相關文章
相關標籤/搜索