主角登场
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 正常显示页面
使用之后
原图在项目里, 虽然看不清, 但是可以看到使用之后无头浏览器比正常运行的还像 ·真浏览器·, 😂, 有兴趣的可以试一试