其中最主要的是添加下面的代码:
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/python/2344.html