其中最主要的是添加下面的代碼:
await page.evaluateOnNewDocument('() =>{ Object.defineProperties(navigator,'
'{ webdriver:{ get: () => false } }) }')
下面的是完整的代碼,可以檢測是否成功
import asyncio
from pyppeteer import launch
# 測試檢測webdriver
async def main():
browser = await launch(headless=False, args=['--disable-infobars'])
page = await browser.newPage()
# 下面的主要是為了偽裝下,很多會進行屏蔽
await page.evaluateOnNewDocument('() =>{ Object.defineProperties(navigator,'
'{ webdriver:{ get: () => false } }) }')
# 上面的主要是為了偽裝下,很多會進行屏蔽
await page.setUserAgent("Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)")
await page.setViewport(viewport={'width': 1920, 'height': 1080})
await page.goto('https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html')
print(await page.content())
await asyncio.sleep(25)
await browser.close()
# asyncio.get_event_loop().run_until_complete(main())
if __name__ == "__main__":
asyncio.run(main())
運行之後的結果為
到此為止。
發布者:彬彬筆記,轉載請註明出處:https://www.binbinbiji.com/zh-hant/python/2344.html