Scrapeless Python SDK
The official Python SDK for Scrapeless AI - End-to-End Data Infrastructure for AI Developers & Enterprises.
New to Scrapeless? Sign up and get $5 in free credits.
📑 Table of Contents
- 🌟 Features
- 📦 Installation
- 🚀 Quick Start
- 📖 Usage Examples
- 🔧 API Reference
- 📚 Examples
- 📄 License
- 📞 Support
- 🏢 About Scrapeless
🌟 Features
- Browser: Advanced browser session management supporting Playwright and pyppeteer frameworks, with configurable anti-detection capabilities (e.g., fingerprint spoofing, CAPTCHA solving) and extensible automation workflows.
- Web Unlocker: web interaction and data extraction with full browser capabilities. Execute JavaScript rendering, simulate user interactions (clicks, scrolls), bypass anti-scraping measures, and export structured data in formats.
- Crawl: Extract data from single pages or traverse entire domains, exporting in formats including Markdown, JSON, HTML, screenshots, and links.
- Scraping API: Direct data extraction APIs for websites (e.g., e-commerce, travel platforms). Retrieve structured product information, pricing, and reviews with pre-built connectors.
- Google Search API: Google SERP data extraction API. Fetch organic results, news, images, and more with customizable parameters and real-time updates.
- AI Scraper: Extract AI chat answers, citations, and brand mentions across supported models.
- Proxies: Geo-targeted proxy network with 195+ countries. Optimize requests for better success rates and regional data access.
📦 Installation
Install the SDK using pip:
pip install scrapeless
🚀 Quick Start
Prerequisite
Log in to the Scrapeless Dashboard and get the API Key
Basic Setup
from scrapeless import Scrapeless
client = Scrapeless({
'api_key': 'your-api-key' # Get your API key from https://scrapeless.com
})
Environment Variables
You can also configure the SDK using environment variables:
# Required
SCRAPELESS_API_KEY=your-api-key
# Optional - Custom API endpoints
SCRAPELESS_BASE_API_URL=https://api.scrapeless.com
SCRAPELESS_BROWSER_API_URL=https://browser.scrapeless.com
SCRAPELESS_CRAWL_API_URL=https://api.scrapeless.com
📖 Usage Examples
Browser
Advanced browser session management supporting Playwright and Pyppeteer frameworks, with configurable anti-detection capabilities (e.g., fingerprint spoofing, CAPTCHA solving) and extensible automation workflows:
from scrapeless import Scrapeless
from scrapeless.types import ICreateBrowser
import pyppeteer
client = Scrapeless()
async def example():
# Create a browser session
config = ICreateBrowser(
session_name='sdk_test',
session_ttl=180,
proxy_country='US',
session_recording=True
)
session = client.browser.create(config).__dict__
browser_ws_endpoint = session['browser_ws_endpoint']
print('Browser WebSocket endpoint created:', browser_ws_endpoint)
# Connect to browser using pyppeteer
browser = await pyppeteer.connect({'browserWSEndpoint': browser_ws_endpoint})
# Open new page and navigate to website
page = await browser.newPage()
await page.goto('https://www.scrapeless.com')
Browser Profile
Manage browser profiles for persistent sessions.
from scrapeless import Scrapeless
client = Scrapeless()
profile = client.profiles.create('My Profile')
print(profile)
Scraping API
Direct data extraction APIs for websites (e.g., e-commerce, travel platforms). Retrieve structured product information, pricing, and reviews with pre-built connectors:
from scrapeless import Scrapeless
from scrapeless.types import ScrapingTaskRequest
client = Scrapeless()
request = ScrapingTaskRequest(
actor='scraper.google.search',
input={'q': 'nike site:www.nike.com'}
)
result = client.scraping.scrape(request=request)
print(result)
Web Unlocker
Extract data from websites using Web Unlocker (exposed as client.universal).
from scrapeless import Scrapeless
from scrapeless.types import UniversalScrapingRequest
client = Scrapeless()
result = client.universal.scrape(UniversalScrapingRequest(
actor='unlocker.webunlocker',
input={'url': 'https://example.com', 'method': 'GET', 'redirect': False}
))
print(result)
Crawl
Extract data from single pages or traverse entire domains, exporting in formats including Markdown, JSON, HTML, screenshots, and links.
from scrapeless import Scrapeless
client = Scrapeless()
result = client.scraping_crawl.scrape_url("https://example.com")
print(result)
Proxy
Generate a proxy URL using your gateway and session settings.
from scrapeless import Scrapeless
from scrapeless.types import ICreateProxy
client = Scrapeless()
proxy_url = client.proxies.proxy(ICreateProxy(
country='US',
session_duration=30,
session_id=client.proxies.generate_session_id(),
gateway='your-proxy-gateway:port'
))
print(proxy_url)
AI Scraper
Extract AI chat content in bulk to monitor brand mentions, compare answers, and analyze competitive intelligence from the latest models. Retrieve URLs, prompts, Markdown answers, citations, and more through one integration.
Supported actors include scraper.chatgpt, scraper.perplexity, scraper.copilot, scraper.gemini, scraper.aimode, scraper.overview, scraper.grok, and scraper.alexa. The input JSON depends on the actor; see the AI Scraper documentation for detailed parameters. The optional webhook JSON contains a callback url.
from scrapeless import Scrapeless
from scrapeless.types import AIScraperTaskRequest
def main():
client = Scrapeless() # Uses SCRAPELESS_API_KEY
task = client.ai_scraper.create_task(AIScraperTaskRequest(
actor='scraper.chatgpt',
input={
'prompt': 'Most reliable proxy service for data extraction',
'country': 'US',
'web_search': True,
},
# Optional: webhook={'url': 'https://your-webhook.example.com'},
))
print('Created task:', task)
result = client.ai_scraper.get_task_result(task['task_id'])
print('Task status and result:', result)
# If status is 'running', call get_task_result again later.
# If status is 'failed', message contains the failure reason.
if __name__ == '__main__':
main()
Both methods return the API JSON unchanged. Creation returns task_id, status, and, when available, task_result. Result retrieval returns status, task_result when available, and message on failure. Status is success, failed, or running; the SDK does not poll automatically.
create_task accepts an AIScraperTaskRequest or a dictionary; dictionaries also allow additional API parameters. Responses are dictionaries.
🔧 API Reference
Client Configuration
from scrapeless.types import ScrapelessConfig
config = ScrapelessConfig(
api_key='', # Your api key
timeout=30000, # Request timeout in milliseconds (default: 30000)
base_api_url='', # Base API URL
browser_api_url='', # Browser service URL
scraping_crawl_api_url='' # Crawl service URL
)
Available Services
The SDK provides the following services through the main client:
client.browser- browser automation with Playwright/Pyppeteer support, anti-detection tools (fingerprinting, CAPTCHA solving), and extensible workflows.client.universal- the Web Unlocker feature: JS rendering, user simulation (clicks/scrolls), anti-block bypass, and structured data export.client.scraping_crawl- Recursive site crawling with multi-format export (Markdown, JSON, HTML, screenshots, links).client.scraping- Pre-built connectors for sites (e.g., e-commerce, travel) to extract product data, pricing, and reviews.client.deepserp- the Google Search API feature: search engine (Google SERP) results extractionclient.proxies- Proxy managementclient.profiles- Browser profile managementclient.ai_scraper- AI chat task creation and result retrieval
Error Handling
The SDK throws ScrapelessError for API-related errors:
from scrapeless import Scrapeless, ScrapelessError
client = Scrapeless()
try:
result = client.scraping.scrape({'url': 'invalid-url'})
except ScrapelessError as error:
print(f"Scrapeless API error: {error}")
if hasattr(error, 'status_code'):
print(f"Status code: {error.status_code}")
📚 Examples
Check out the examples directory for comprehensive usage examples:
- Browser
- Playwright Integration
- Pyppeteer Integration
- Browser Profile
- Scraping API
- Web Unlocker
- Crawl
- AI Scraper
- Proxies
- Google Search API
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
📞 Support
- 📖 Documentation: https://docs.scrapeless.com
- 💬 Community: Join our Discord
- 🐛 Issues: GitHub Issues
- 📧 Email: support@scrapeless.com
🏢 About Scrapeless
Scrapeless is a powerful web scraping and browser automation platform that helps businesses extract data from any website at scale. Our platform provides:
- High-performance web scraping infrastructure
- Global proxy network
- Browser automation capabilities
- Enterprise-grade reliability and support
Visit scrapeless.com to learn more and get started.
Made with ❤️ by the Scrapeless team
Related Projects
Release files for scrapeless 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scrapeless-1.3.0.tar.gz | 30.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scrapeless-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.3 kB
Release files / scrapeless-1.3.0.tar.gz
| Download URL | scrapeless-1.3.0.tar.gz |
|---|---|
| Size | 30.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e0a8564a665f6586d8910d46064d129f2c68399f853c5f4dcf8b88fc621f52f5
|
|
BLAKE2b-256 checksum How to use checksums |
deb5082978405790631eaeaa6375052ad069092288fbef1960d317c85f7f1697
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / scrapeless-1.3.0-py3-none-any.whl
| Download URL | scrapeless-1.3.0-py3-none-any.whl |
|---|---|
| Size | 42.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e5f32caac925d9ad2a63f943ded14ef2803a6b47546ee3409f7715df1d23cf73
|
|
BLAKE2b-256 checksum How to use checksums |
50417f97dd93e1fe34400eda22f157491c04a639aebe9cc09bd29eb767686303
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency log