官方文档

使用默认方式控制浏览器

安装chromium浏览器

cmd执行如下代码

  1. python -m playwright install

生成文件stealth.min.js

安装nodejs,执行如下代码,则会在环境根目录下生成stealth.min.js文件

  1. npx extract-stealth-evasions

执行代码
  1. import time
  2. from playwright.sync_api import sync_playwright
  3. from playwright.sync_api import Page
  4. playwright = sync_playwright().start()
  5. # 过检测方法1:--disable-blink-features=AutomationControlled
  6. browser = playwright.chromium.launch(
  7. headless=False,
  8. args=['--disable-blink-features=AutomationControlled'],
  9. # 指定浏览器
  10. # executable_path=r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe",
  11. )
  12. # 过检测方法2:stealth.min.js
  13. context = browser.new_context(viewport={'width': 1920, 'height': 1080})
  14. context.add_init_script(path=r'c:\Users\zghmvp\Desktop\stealth.min.js')
  15. # 测试
  16. page = context.new_page()
  17. page.goto('https://bot.sannysoft.com/')
  18. time.sleep(5)
  19. page.evaluate('''window.open("https://bot.sannysoft.com/")''')
  20. browser.close()

使用cdp链接已打开的浏览器

  1. import time
  2. from playwright.sync_api import sync_playwright
  3. from playwright.sync_api import Page
  4. from playwright.sync_api import Response
  5. playwright = sync_playwright().start()
  6. # 浏览器快捷方式:C:\xxx\chrome.exe --remote-debugging-port=9222
  7. browser = playwright.chromium.connect_over_cdp('http://localhost:9222')
  8. context = browser.contexts[0] # 获取默认的上下文
  9. # context.add_init_script(path=r'c:\Users\zghmvp\Desktop\stealth.min.js')
  10. # 添加监听
  11. def on_response(response: Response):
  12. print(response.url)
  13. # print(response.json())
  14. # print(response.text())
  15. # print(response.body())
  16. context.on('response', on_response)
  17. # 测试
  18. page = context.new_page()
  19. page.goto('https://bot.sannysoft.com/')
  20. time.sleep(10)
  21. page.close()