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}")