
Puppeteer 訪問 HTTP 頁面報 net::ERR_BLOCKED_BY_CLIENT 怎么解決【免費下載鏈接】puppeteerJavaScript API for Chrome and Firefox項目地址: https://gitcode.com/GitHub_Trending/puppeteer1/puppeteer用 Puppeteer 驅動的 Chrome 執行page.goto(http://...)訪問一個遠程 HTTP 站點時導航會拋出net::ERR_BLOCKED_BY_CLIENT而不是正常加載頁面。這不是網絡故障也不是 Puppeteer 的 bugPuppeteer 默認下載的 Chrome for Testing 構建中啟用了 Chrome 的HttpsFirstBalancedModeAutoEnable特性它會對訪問 HTTP 站點的導航顯示警告頁并讓這次導航請求以net::ERR_BLOCKED_BY_CLIENT報錯結束該錯誤可以被捕獲并從警告頁恢復。本地 HTTP 主機不會觸發警告遠程主機才可能觸發所以同一個腳本在訪問localhost時正常、訪問線上 HTTP 地址時報錯是文檔明確描述的典型現象。適用條件先確認你的環境命中以下條件這個錯誤才可能由該特性引起瀏覽器是 Puppeteer 默認下載的Chrome for Testingdocs/supported-browsers.mdPuppeteer 自 v20.0.0 起下載并使用 Chrome for Testing此前版本下載的是 Chromium。導航目標是HTTP非 HTTPS的遠程地址。訪問本地 HTTP 主機不會觸發該警告。使用channel指定系統安裝的普通 Chrome、或用executablePath指定其他瀏覽器時是否命中取決于對應 Chrome 是否啟用了該特性需要按實際版本確認。可以用browser.version()確認當前瀏覽器。文檔給出的返回格式示例為Chrome/61.0.3153.0或HeadlessChrome/61.0.3153.0文檔示例實際版本號以運行時輸出為準據此可以對照 支持瀏覽器版本表 判斷當前 Puppeteer 版本對應的 Chrome 構建。方案一啟動參數禁用該特性推薦官方 troubleshooting 文檔 給出的做法是在puppeteer.launch()的args選項中傳入--disable-featuresHttpsFirstBalancedModeAutoEnableconst browser await puppeteer.launch({ args: [--disable-featuresHttpsFirstBalancedModeAutoEnable], });args是 LaunchOptions 中「Additional command line arguments to pass to the browser instance」的選項即附加傳給瀏覽器進程此處為 Chrome的命令行參數。這個參數會在啟動時關閉HttpsFirstBalancedModeAutoEnable特性之后page.goto(http://...)會按常規導航流程執行不會再拋出net::ERR_BLOCKED_BY_CLIENT。方案二捕獲錯誤并點擊警告頁按鈕troubleshooting 文檔同時說明該錯誤 can be caught and recovered from發生錯誤時 Chrome 會顯示一個帶「繼續導航」按鈕的警告頁這個按鈕可以通過 Puppeteer 點擊。因此也可以在腳本中捕獲page.goto()拋出的錯誤再點擊警告頁上的按鈕完成導航。適合不方便改啟動參數、或希望保留該特性行為的場景具體選擇器需要針對當前 Chrome 版本的警告頁實現自行確認文檔只說明了按鈕可被 Puppeteer 點擊未給出選擇器示例。驗證方式使用方案一后重新運行訪問 HTTP 頁面的腳本page.goto(http://...)正常解析、不再拋出net::ERR_BLOCKED_BY_CLIENT頁面按預期加載。如果仍報錯先確認兩點目標是否為遠程 HTTP 主機本地主機本就不應觸發啟動代碼中是否真的帶上了--disable-featuresHttpsFirstBalancedModeAutoEnable參數且瀏覽器為 Puppeteer 默認下載的 Chrome for Testing。其他錯誤碼如net::ERR_FAILED屬于不同的導航失敗原因參見 Frame.goto() 的異常說明不要歸因到本特性。邊界與后續該問題只與「Chrome for Testing HTTP 遠程導航」組合相關與代理配置、CSP、請求攔截無關不要把net::ERR_BLOCKED_BY_CLIENT與代理/攔截類問題混同排查。關于該特性的上游背景troubleshooting 文檔指向了 Chrome 的 bug 跟蹤編號 378022921外部鏈接按官方原文保留如需跟蹤特性變化以 Chrome 官方渠道為準。完整的瀏覽器與 Puppeteer 版本對照見 支持瀏覽器列表可用于確認當前版本默認下載的是哪個 Chrome for Testing 構建。【免費下載鏈接】puppeteerJavaScript API for Chrome and Firefox項目地址: https://gitcode.com/GitHub_Trending/puppeteer1/puppeteer創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考