91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何正確移除中Pyppeteer的window.navigator.webdriver

發布時間:2021-12-04 19:23:57 來源:億速云 閱讀:145 作者:柒染 欄目:大數據

如何正確移除中Pyppeteer的window.navigator.webdriver,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

時過境遷,隨著 Chrome 版本升級,這一方法也宣告失效。

今天我們來講講如何隱藏Pyppeteer。

今天的方法非常簡單,不需要修改源代碼。

大家閱讀 Selenium 版的文章,應該看到我們的原理是通過 CDP 執行一段 JavaScript 代碼。這段代碼中有一個關鍵詞叫做addScriptToEvaluateOnNewDocument。表示添加一段腳本,在打開新文檔時執行。

我們記住這個關鍵詞EvaluateOnNewDocument。現在大家打開 Pyppeteer 的官方 API[1],搜索evaluateOnNewDocument可以看到原來 Pyppeteer 也是支持這個功能的。

這樣一來文件就非常簡單了,我們在 Pyppeteer 里面直接調用它,并傳遞 JavaScript 代碼就好了:

import asyncio
from pyppeteer import launch


async def main():
   browser = await launch(executablePath='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', headless=False)
   page = await browser.newPage()
   await page.evaluateOnNewDocument('''() => {
       Object.defineProperty(navigator, 'webdriver', {
       get: () => undefined
       })
       }
   ''')
   await page.goto('http://exercise.kingname.info')
   input('檢查完畢后按下回車鍵關閉窗口...')
   await browser.close()


asyncio.run(main())
 

代碼的運行效果如下圖所示:

如何正確移除中Pyppeteer的window.navigator.webdriver  

完美解決問題。并且只要你不開新的選項卡或者新的窗口,只在當前窗口打開新的網址或者刷新頁面,這個 js 代碼都是自動生效的,不需要重復執行。

其中關鍵的代碼就是:

await page.evaluateOnNewDocument('''() => {
       Object.defineProperty(navigator, 'webdriver', {
       get: () => undefined
       })
       }
   ''')
 

讓 Pyppeteer 在每個新頁面加載的時候,所有網站自帶的 js 執行之前,執行參數中的這段JavaScript 函數。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰考县| 耿马| 吐鲁番市| 娱乐| 临湘市| 遂溪县| 乐亭县| 桐柏县| 科技| 图们市| 色达县| 抚远县| 唐河县| 延长县| 封开县| 栾川县| 梁平县| 许昌县| 青岛市| 凌源市| 佛教| 卓尼县| 万宁市| 双峰县| 蚌埠市| 宝山区| 香河县| 固始县| 泽库县| 荆门市| 八宿县| 溧阳市| 镇康县| 积石山| 洞口县| 曲麻莱县| 钟祥市| 铜川市| 玉屏| 塔河县| 柏乡县|