Typed Python SDK for Supacrawler API (scrape, jobs, screenshots, watch)
Project description
supacrawler-py
Typed Python SDK for Supacrawler API.
Install
- From PyPI (when published):
pip install supacrawler-py
- With uv (PEP 621 aware):
uv add supacrawler-py
# or for local dev
uv pip install -e .
- From local path (development):
pip install -e .
- From GitHub (direct):
pip install git+https://github.com/Supacrawler/supacrawler-py.git#subdirectory=sdk/supacrawler-py
Usage
from supacrawler import SupacrawlerClient, ScrapeParams, JobCreateRequest, ScreenshotRequest, WatchCreateRequest
client = SupacrawlerClient(api_key="YOUR_API_KEY")
# Scrape
scrape = client.scrape(ScrapeParams(url="https://example.com", format="markdown"))
print(scrape)
# Create crawl job
job = client.create_job(JobCreateRequest(url="https://supabase.com/docs", type="crawl", depth=2, link_limit=10, format="markdown"))
status = client.wait_for_job(job.job_id)
print(status.status)
# Screenshot job
sjob = client.create_screenshot_job(ScreenshotRequest(url="https://example.com", device="desktop", full_page=True))
print("job:", sjob.job_id)
# Wait and fetch a fresh signed URL (recommended)
signed = client.wait_for_screenshot(sjob.job_id)
print("screenshot:", signed.screenshot)
# Watch
watch = client.watch_create(WatchCreateRequest(url="https://example.com/pricing", frequency="daily", notify_email="me@example.com"))
print(watch.watch_id)
Advanced
- See
examples/*.ipynbfor full parameter coverage:- Scrape: format, render_js, wait, device, depth, max_links, fresh
- Jobs: format, link_limit, depth, include_subdomains, render_js, patterns
- Screenshots: device/full_page/format/quality/viewport/device_scale, waits, selectors, blocking, modes
- Watch: frequency, selector, include_html/image, full_page, quality, pause/resume/check/delete
API coverage
- GET
/v1/scrape(all params) - POST
/v1/crawl, GET/v1/crawl/{id} - POST
/v1/screenshots - POST
/v1/watch, GET/v1/watch, GET/v1/watch/{id}, DELETE/v1/watch/{id}, PATCH/v1/watch/{id}/pause, PATCH/v1/watch/{id}/resume, POST/v1/watch/{id}/check
Development
- Env var:
SUPACRAWLER_API_KEYfor examples. - Not needed:
requirements.txtfor end-users (deps declared inpyproject.toml). Optionalrequirements-dev.txtif you add tests or notebooks tooling.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
supacrawler_py-0.1.6.tar.gz
(34.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file supacrawler_py-0.1.6.tar.gz.
File metadata
- Download URL: supacrawler_py-0.1.6.tar.gz
- Upload date:
- Size: 34.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f2c597bbece02f3d696887b4c29f4242ae1a1d331e6cd662c3ba6cad851640c
|
|
| MD5 |
3055e47c5cd122de8b5e7e36651b8611
|
|
| BLAKE2b-256 |
1d885bd77f7f33a22d8ef97c283096cea62097e1d1888c34d850553deb249fe1
|
File details
Details for the file supacrawler_py-0.1.6-py3-none-any.whl.
File metadata
- Download URL: supacrawler_py-0.1.6-py3-none-any.whl
- Upload date:
- Size: 62.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb6109604feba1bd1efc95493b8f994aa5ab5bba9036085bf89f2a8c9bb1c6f1
|
|
| MD5 |
d68d61b8c9e6a5356ecb36c6882a4cf6
|
|
| BLAKE2b-256 |
dedb17eef96a3d28253d46dc35397d9d0bf5747a2bf0b02badd8d8a60344b813
|