zl程序教程

您现在的位置是:首页 >  Java

当前栏目

pyppeteer_stealth隐藏pyppeteer特征天花板神器

2023-02-18 16:32:20 时间

主角登场

https://github.com/MeiK2333/pyppeteer_stealth

第一眼看也能猜出来是干啥的, 就是用来隐藏pyppeteer特征的, 话不多说, 直接开干, 来测一下就知道它的神奇之处了

安装

pip install pyppeteer_stealth

使用

import asyncio
from pyppeteer import launch
from pyppeteer_stealth import stealth

async def main():
    browser = await launch(headless=True)
    page = await browser.newPage()
    ###
    await stealth(page)  # <-- Here
    ###
    await page.goto("https://bot.sannysoft.com/")
    await browser.close()
asyncio.get_event_loop().run_until_complete(main())

参数

stealth(
  page: Page,
  run_on_insecure_origins: bool = False,
  languages: [str] = ["en-US", "en"],
  vendor: str = "Google Inc."
  user_agent: str = None,
  locale: str = "en-US,en",
  mask_linux: bool = True,
  webgl_vendor: str = "Intel Inc.",
  renderer: str = "Intel Iris OpenGL Engine",
  disabled_evasions: list = [],
)

禁止隐藏的特征disabled_evasions , 支持隐藏的参数

['chrome_app',
 'chrome_runtime',
 'iframe_content_window',
 'media_codecs',
 'sourceurl',
 'navigator_hardware_concurrency',
 'navigator_languages',
 'navigator_permissions',
 'navigator_plugins',
 'navigator_vendor',
 'navigator_webdriver',
 'user_agent_override',
 'webgl_vendor',
 'window_outerdimensions']

使用之前

无头模式 vs 正常显示页面

使用之后

原图在项目里, 虽然看不清, 但是可以看到使用之后无头浏览器比正常运行的还像 ·真浏览器·, ?, 有兴趣的可以试一试