Puppeteer--爬坑記錄


1.運行時報錯:ExperimentalWarning: The fs.promises API is experimental
解決:下載最新版本的Node~
 
2.啟動后,頁面崩潰
解決:
const args = [
        '--no-sandbox',
        '--disable-setuid-sandbox',
        '--disable-infobars',
]

 

3.使用page.waitForNavigation()方法后,發現獲取不到指定元素。
page.waitForNavigation({
    timeout: 30 * 1000,
    waitUntil: [
        'load',                       //等待 “load” 事件觸發
        'domcontentloaded',  //等待 “domcontentloaded” 事件觸發
        'networkidle0',          //在 500ms 內沒有任何網絡連接
        'networkidle2'           //在 500ms 內網絡連接個數不超過 2 個
    ]
})
注意:如果需要等待所有異步請求執行完畢,使用以上代碼沒有效果?
解決:改用page.waitFor或者page.waitForSelector
 
4. 通過以下語句返回的是undefined,無法獲取到elementHandle。
const span_1 = await page.$$eval('span', span_s => {
    var span = span_s.filter(span =>{
        return span.innerText.includes('定制')
    });
    console.log(span);
    return span
});
原因:回調是在瀏覽器環境里執行的,無法返回elementHandle類型
解決:要么在瀏覽器環境執行所有操作返回最終結果,要么改用page.$(), page.$$(),page.$X()再操作
 
5.TypeError: Cannot read property 'waitForSelector' of null
現象:Puppeteer不穩定??,時常會出現~,觀察發現是頁面元素未渲染完畢就停止渲染了,只能加入重試機制重刷頁面
 
6.Page.$()和Page.$$()無法根據文本內容過濾
解決:Xpath語法會更加強大,改用page.$X()
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM