Browser Native Python Client
Lightning-fast web scraping Python SDK - 11x faster than traditional scrapers

Official Python client for the Browser Native web scraping API. Extract content, take screenshots, and analyze websites with AI - all with intelligent fallback mechanisms.
🚀 Quick Start
Installation
pip install browsernative
Basic Usage
from browsernative import BrowserNativeClient
client = BrowserNativeClient('your-api-key')
result = client.scrape('https://example.com')
print(result['data'])
screenshot = client.screenshot('https://example.com')
print(screenshot['data']['screenshot'])
answer = client.analyze('https://example.com', 'What is this website about?')
print(answer['data']['answer'])
One-liner Convenience Functions
from browsernative import quick_scrape, quick_analyze, quick_shot
data = quick_scrape('https://example.com', 'your-api-key')
result = quick_analyze(
'https://example.com',
'What services do they offer?',
'your-api-key'
)
screenshot = quick_shot('https://example.com', 'your-api-key')
📖 Features
- 🚀 Lightning Fast: 11x faster than traditional scrapers
- 🔄 Intelligent Fallback: Multi-tier system (Direct → Lightpanda → Puppeteer)
- 🤖 AI Integration: Built-in Q&A capabilities with OpenRouter/OpenAI
- 📸 Screenshots: Full page captures with optimization
- 📄 PDF Support: Automatic PDF parsing and text extraction
- 🔒 Type Safe: Full type hints for better IDE support
- ♻️ Context Manager: Automatic resource cleanup
🛠️ API Reference
Client Initialization
client = BrowserNativeClient(
api_key='your-api-key',
base_url='https://bnca-api.fly.dev',
timeout=30,
retries=2,
verbose=False
)
Methods
scrape(url, **options)
Extract structured content from any webpage.
result = client.scrape(
'https://example.com',
include_screenshot=True
)
analyze(url, question, **options)
Ask questions about any webpage using AI.
result = client.analyze(
'https://news.site.com',
'What are the top 3 stories?',
include_screenshot=False
)
screenshot(url, **options)
Capture full-page screenshots.
result = client.screenshot('https://example.com')
base64_image = result['data']['screenshot']
quickshot(url, **options)
Optimized screenshot capture for speed.
result = client.quickshot('https://example.com')
get_usage(days=30)
Get your API usage statistics.
usage = client.get_usage(days=7)
print(usage['data'])
health_check()
Check API status and your account.
health = client.health_check()
print(health['data']['status'])
🔄 Context Manager Support
Automatically clean up resources:
with BrowserNativeClient('your-api-key') as client:
result = client.scrape('https://example.com')
🎯 Advanced Examples
Batch Processing
urls = ['https://site1.com', 'https://site2.com', 'https://site3.com']
with BrowserNativeClient('your-api-key') as client:
for url in urls:
try:
result = client.scrape(url)
print(f"✓ {url}: {result['data']['title']}")
except Exception as e:
print(f"✗ {url}: {e}")
Error Handling
from browsernative import BrowserNativeClient
client = BrowserNativeClient('your-api-key', verbose=True)
try:
result = client.scrape('https://invalid-url')
except ValueError as e:
print(f"Invalid input: {e}")
except Exception as e:
print(f"API error: {e}")
AI Analysis with Context
questions = [
"What is the main topic?",
"Is there pricing information?",
"What features are highlighted?"
]
with BrowserNativeClient('your-api-key') as client:
for question in questions:
result = client.analyze('https://product.com', question)
print(f"Q: {question}")
print(f"A: {result['data']['answer']}\n")
🔑 Getting an API Key
📋 Requirements
- Python 3.7+
requests
library (automatically installed)
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📄 License
MIT License - see LICENSE file for details.
🔗 Links