Quick Start Guide

Installation

pip install askpablos-api

For HTML parsing with XPath, also install lxml:

pip install lxml

Basic Setup

from askpablos_api import AskPablos

client = AskPablos(
    api_key="your_api_key",
    secret_key="your_secret_key"
)

Store credentials in environment variables for production:

import os

client = AskPablos(
    api_key=os.getenv("ASKPABLOS_API_KEY"),
    secret_key=os.getenv("ASKPABLOS_SECRET_KEY")
)

Making Requests

# Simple GET request
response = client.get("https://httpbin.org/ip")
print(response.status_code)
print(response.content)

# With headers, params, and timeout
response = client.get(
    url="https://api.example.com/data",
    headers={"Accept": "application/json"},
    params={"page": "1"},
    timeout=15
)

Browser Mode

Enable browser=True for JavaScript-rendered pages. Use operations with waitForElement to ensure dynamic content is loaded before the HTML is captured.

from lxml import etree

response = client.get(
    url="https://example.com/catalog",
    browser=True,
    operations=[{
        "task": "waitForElement",
        "match": {
            "on": "xpath",
            "rule": "visible",
            "value": "//ul[@class='prod_list']"
        }
    }],
    timeout=45
)

dom = etree.HTML(response.content)
items = dom.xpath("//ul[@class='prod_list']/li")

Screenshots

response = client.get(
    url="https://example.com",
    browser=True,
    screenshot=True
)

if response.screenshot:
    with open("screenshot.png", "wb") as f:
        f.write(response.screenshot)

Error Handling

from askpablos_api import (
    AskPablos,
    AuthenticationError,
    APIConnectionError,
    ResponseError,
    RequestTimeoutError
)

try:
    response = client.get("https://example.com", timeout=30)
    print(f"Success: {response.status_code}")
except AuthenticationError as e:
    print(f"Auth failed: {e}")
except APIConnectionError as e:
    print(f"Connection error: {e}")
except ResponseError as e:
    print(f"HTTP error: {e}")
except RequestTimeoutError as e:
    print(f"Timed out: {e}")