DrissionPage (g1879/DrissionPage)
Searching Database…
12.5K ·GitHub
What is this?
DrissionPage is a Python web automation tool that can control a browser, send and receive raw HTTP packets, or combine both in one workflow, giving you browser automation convenience together with requests-level efficiency.
Is it a replacement for Selenium, or something else?
It is a library you import in Python scripts. It uses its own self-developed engine instead of WebDriver, so it does not need browser-specific driver downloads and runs faster than Selenium.
How do I add it to a project?
Install it as a Python package and import it in your script to start controlling a browser or sending packets; configuration is handled through an ini file that DrissionPage reads automatically.
Do I need a special browser driver installed first?
No, since it does not rely on WebDriver you skip downloading matching driver binaries for different browser versions; it ships lxml built-in for fast HTML parsing.
Can I use this for any scraping project I want?
No, the terms of use restrict it to personal, non-commercial, legal learning purposes, forbid use that violates robots.txt, harms others, or involves harassment, and commercial use requires authorization from the copyright holder.
Who is this aimed at?
It targets Python developers doing web scraping and automation, including beginners, since the author designed its syntax to be concise and friendly to newcomers.
Does it work on Linux and Mac, or just Windows?
It is a cross-platform Python library and is tagged for Linux, macOS, and Windows.
Can it work across multiple iframes or tabs without switching context?
Yes, it treats iframes as regular elements so you can locate elements across iframes without switching in and out, and it can operate multiple tabs simultaneously without switching between them.
Can it take a full-page screenshot, including content outside the viewport?
Yes, it supports screenshotting the entire webpage, including parts outside the visible viewport.
Can it reuse a browser I already have open instead of launching a new one each run?
Yes, it allows reusing an already-open browser so you do not need to restart the browser from scratch every run, which makes debugging more convenient.
Why did the author build a custom engine instead of just wrapping Selenium?
The author wanted to avoid WebDriver's overhead (driver version mismatches, slower speed) and bake in many convenience features like built-in waits/retries, simplified element location syntax, and direct cache-based image saving, resulting in a more stable and elegant library.
What are similar projects?
firecrawl, invisible_puppeteer, MediaCrawler, Scrapegraph-ai, SeleniumBase, crawlee, automa, Agent-Reach
Which topics is it in?
web-automation, web-crawler, webscraping, scraper, scraping, web-scraping, browser-automation, cli-tool, testing, china, chinese, automation



