Skip to main content

dawg-sdk-python

Python SDK for BaaS (Browser as a Service).

Two tools in one SDK:

  • Baas — cloud browser via CDP WebSocket (Playwright, Puppeteer, Selenium)
  • Scraper — fast HTTP scraping with content extraction (no browser needed)

Installation

pip install dawg-sdk-python

Scraper — HTTP scraping

Extract clean content from web pages without a browser. Fast, cheap, TLS-fingerprinted.

from dawg_sdk import Scraper

with Scraper(api_key="your_key") as s:
    # Single page → markdown
    result = s.scrape("https://example.com")
    print(result.content)

    # Crawl a site
    job = s.crawl("https://example.com", max_depth=2, max_pages=20)
    job.wait()
    for page in job.pages:
        print(page.url, len(page.content))

    # Batch scrape
    job = s.batch(["https://a.com", "https://b.com"])
    job.wait()

Scraper Methods

  • scrape(url, format="markdown", main_content=False, include_links=False)ScrapeResult
  • crawl(url, max_depth=2, max_pages=50, concurrency=3)ScrapeJob
  • batch(urls, concurrency=5)ScrapeJob
  • get_job(job_id)ScrapeJob
  • cancel_job(job_id)

Formats: "markdown", "text", "html"

Jobs (crawl/batch) are async — use job.wait() to block until done, or job.refresh() to poll manually.

Browser — CDP access

Get a cloud browser via WebSocket. Use with any automation framework.

from dawg_sdk import Baas

with Baas(api_key="your_key") as ws_url:
    browser = playwright.chromium.connect_over_cdp(ws_url)
    # ... your code ...
# auto-released

With Proxy

baas = Baas(api_key="your_key")
ws_url = baas.create(proxy="socks5://user:pass@host:port")

Async

from dawg_sdk import AsyncBaas

async with AsyncBaas(api_key="your_key") as ws_url:
    browser = await playwright.chromium.connect_over_cdp(ws_url)

Browser Methods

  • create(proxy=None, geo=None) -> str — returns ws_url
  • release() — release browser back to pool
  • close() — close HTTP session

Exceptions

from dawg_sdk import BaasError, AuthError, RateLimitError

try:
    result = scraper.scrape("https://example.com")
except AuthError:
    print("Invalid API key")
except RateLimitError as e:
    print(f"Rate limit, retry after {e.retry_after}s")

Examples

Scrape to markdown

from dawg_sdk import Scraper

s = Scraper(api_key="your_key")
result = s.scrape("https://news.ycombinator.com", format="markdown", main_content=True)
print(result.metadata["title"])
print(result.content)
s.close()

Playwright browser

from playwright.sync_api import sync_playwright
from dawg_sdk import Baas

with Baas(api_key="your_key") as ws_url:
    with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp(ws_url)
        page = browser.contexts[0].pages[0]
        page.goto("https://example.com")
        print(page.title())
        browser.close()

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dawg_sdk_python-0.4.0.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dawg_sdk_python-0.4.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file dawg_sdk_python-0.4.0.tar.gz.

File metadata

  • Download URL: dawg_sdk_python-0.4.0.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dawg_sdk_python-0.4.0.tar.gz
Algorithm Hash digest
SHA256 ee096faaf74eb21ab8e9815fe094474340ffd8b32e28034df273f2b3f5b8b9da
MD5 27aa5f77e05fbe26fe53f12b142cd39d
BLAKE2b-256 173a097eed189139cf3abba4851c992a19bd5d0d972d871b730c4251f0774571

See more details on using hashes here.

File details

Details for the file dawg_sdk_python-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: dawg_sdk_python-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dawg_sdk_python-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 43f029103193ab54a0e08fd6ef72710297fbd178b6c16b7ffd11618d78dad30f
MD5 326a5e977c5399658119bbefe05e9e83
BLAKE2b-256 19acf269d6844832c8bf2b802b95c36f483720c03274b24f70193306c0c2b869

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 files

0.3.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page