{"id":46851,"library":"zendriver","title":"ZenDriver","description":"A blazing fast, async-first, undetectable web scraping and automation framework with stealth features to avoid bot detection. Current version 0.15.3, actively maintained with weekly releases.","status":"active","version":"0.15.3","language":"python","source_language":"en","source_url":"https://github.com/ultrafunkamsterdam/zendriver","tags":["web-scraping","automation","async","undetectable","headless-browser"],"install":[{"cmd":"pip install zendriver","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Used by default for browser automation; alternative is cdp (Chrome DevTools Protocol) driver.","package":"playwright","optional":true}],"imports":[{"wrong":"from zendriver import Driver","symbol":"Browser","correct":"from zendriver import Browser"},{"symbol":"Tab","correct":"from zendriver import Tab"},{"symbol":"start","correct":"from zendriver import start"}],"quickstart":{"code":"import asyncio\nfrom zendriver import Driver\n\nasync def main():\n    driver = Driver()\n    await driver.start(headless=False)\n    page = await driver.get('https://example.com')\n    await page.wait_for('h1')\n    title = await page.title()\n    print(f'Page title: {title}')\n    await driver.stop()\n\nasyncio.run(main())","lang":"python","description":"Basic usage: launch a browser, navigate, wait for element, and print title."},"warnings":[{"fix":"Wrap all calls in async functions and use await. Refer to migration guide: https://github.com/ultrafunkamsterdam/zendriver#migration-from-0.13","message":"In version 0.14, the API changed from synchronous to fully async. Old synchronous code will not work.","severity":"breaking","affected_versions":">=0.14"},{"fix":"Always use public imports: from zendriver import Driver, WebElement, By.","message":"Do not import from zendriver.cdp by default; it is an internal module and may change without notice. Use the high-level API.","severity":"gotcha","affected_versions":"all"},{"fix":"Change from Driver(browser_path=...) to Driver(browser_executable_path=...).","message":"The 'browser_path' parameter in Driver.__init__ is deprecated starting 0.15. Use 'browser_executable_path' instead.","severity":"deprecated","affected_versions":">=0.15"}],"env_vars":null,"search_vec":"'0.15.3':23 'activ':24 'async':6,33 'async-first':5 'autom':12,32 'avoid':18 'blaze':3 'bot':19 'browser':37 'current':21 'detect':20 'fast':4 'featur':16 'first':7 'framework':13 'headless':36 'headless-brows':35 'maintain':25 'releas':28 'scrape':10,31 'stealth':15 'undetect':8,34 'version':22 'web':9,30 'web-scrap':29 'week':27 'zendriv':1","created_at":"2026-06-07T13:01:56.364394+00:00","updated_at":"2026-06-07T13:01:56.364394+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-08-02","install_tag":null}}