python使用pyppeteer反反屏蔽绕过WebDriver检测

其中最主要的是添加下面的代码:

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())

运行之后的结果为

python使用pyppeteer反反屏蔽绕过WebDriver检测

到此为止。

发布者:彬彬笔记,转载请注明出处:https://www.binbinbiji.com/python/2344.html

(0)
彬彬笔记彬彬笔记
上一篇 2022年6月6日 21:39
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论
蜀ICP备14017386号-13