o-browser
Python async browser automation client built on Patchright.
Install
pip install o-browser
Usage
from o_browser import BrowserClient, RemoteBrowser
# Local headless browser
async with BrowserClient() as browser:
await browser.goto("https://example.com")
text = await browser.get_text()
# Persistent Chrome profile (cookies survive between runs)
async with BrowserClient(profile_path="~/.config/browser/linkedin") as browser:
await browser.goto("https://linkedin.com")
# With recording (HAR + video)
async with BrowserClient(record=True) as browser:
await browser.goto("https://example.com")
# Interactive (opens browser window, waits for user to close)
async with BrowserClient(interactive=True) as browser:
await browser.wait_closed()
# Connect to remote Chrome (e.g. o-browser-full)
# RemoteBrowser auto-creates a session via POST /api/sessions if none active.
async with RemoteBrowser("http://host:8080", workflow="my-app") as browser:
await browser.goto("https://example.com")
# Disable auto-session if you manage sessions yourself
async with RemoteBrowser("http://host:8080", auto_session=False) as browser:
...
Features
- Headless and headful modes
- Persistent Chrome profiles
- HAR + video recording (HAR captured Python-side, survives the user closing the window in interactive mode)
- Proxy support
- Cookie management
- CDP connection to existing Chrome instances
- Anti-detection via Patchright
Site adapters (plugins)
Site-specific scrapers are separate distributions, not bundled in core. Each registers in the
o_browser.sites entry-point group and is discovered at runtime:
from o_browser import load_site, available_sites
available_sites() # -> ['vivatech', ...] (installed adapters)
VivaTechClient = load_site("vivatech") # pip install o-browser-vivatech
Related
For a full remote browser service with VNC, session management, and recording, see o-browser-full.
Metadata
Release files for o-browser 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| o_browser-0.3.1.tar.gz | 25.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| o_browser-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.0 kB
Release files / o_browser-0.3.1.tar.gz
| Download URL | o_browser-0.3.1.tar.gz |
|---|---|
| Size | 25.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b21160c19bf145566b271e9fc2f2753af368d6157675035770f8070fbdcc8f6f
|
|
BLAKE2b-256 checksum How to use checksums |
d6a65dfc855a2ab1ed722bb5b2bd864c2cad6a14562029198140a10e0c2399f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / o_browser-0.3.1-py3-none-any.whl
| Download URL | o_browser-0.3.1-py3-none-any.whl |
|---|---|
| Size | 11.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e1fdf7d59e9577edca8cc3a6eb2f5d7ed9a4f251a36e1fa83133f9946c85a19
|
|
BLAKE2b-256 checksum How to use checksums |
22b6df96c5c11a7e26abb9ebea274a706e19bca887f0bd841cde2ebb2258e6e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|