# Python 3. Install dependency: pip install requests
# SCRAPLY_API_KEY is required; SCRAPLY_BASE_URL is optional.
import os
import time
import requests

key = os.environ["SCRAPLY_API_KEY"]
base = os.environ.get("SCRAPLY_BASE_URL", "https://www.scraply.net").rstrip("/")
session = requests.Session()
session.headers["X-API-Key"] = key
response = session.get(base + "/v1/scrape", params={"url": "https://example.com"}, timeout=30)
response.raise_for_status()
data = response.json()
if response.status_code == 202:
    job_id = data["id"]
    deadline = time.monotonic() + 60
    while time.monotonic() < deadline:
        status = session.get(base + "/v1/jobs/" + job_id, timeout=30)
        status.raise_for_status()
        job = status.json()
        if job["status"] in ("succeeded", "failed", "dead"):
            data = job["result"]
            break
        time.sleep(1)
    if "success" not in data:
        raise RuntimeError("Job still processing; poll the same job ID.")
if not data.get("success"):
    raise RuntimeError(data)
print(data)
