Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

🌐 ScrapeGraph Python SDK

PyPI version Python Support License Code style: black Documentation Status

Official Python SDK for the ScrapeGraph AI API - Smart web scraping powered by AI.

🚀 Features

  • ✨ Smart web scraping with AI
  • 🔄 Both sync and async clients
  • 📊 Structured output with Pydantic schemas
  • 🔍 Detailed logging with emojis
  • ⚡ Automatic retries and error handling
  • 🔐 Secure API authentication

📦 Installation

Using pip

pip install scrapegraph-py

Using uv

We recommend using uv to install the dependencies and pre-commit hooks.

# Install uv if you haven't already
pip install uv

# Install dependencies
uv sync

# Install pre-commit hooks
uv run pre-commit install

🔧 Quick Start

[!NOTE] If you prefer, you can use the environment variables to configure the API key and load them using load_dotenv()

from scrapegraph_py import SyncClient
from scrapegraph_py.logger import get_logger

# Enable debug logging
logger = get_logger(level="DEBUG")

# Initialize client
sgai_client = SyncClient(api_key="your-api-key-here")

# Make a request
response = sgai_client.smartscraper(
    website_url="https://example.com",
    user_prompt="Extract the main heading and description"
)

print(response["result"])

🎯 Examples

Async Usage

import asyncio
from scrapegraph_py import AsyncClient

async def main():
    async with AsyncClient(api_key="your-api-key-here") as sgai_client:
        response = await sgai_client.smartscraper(
            website_url="https://example.com",
            user_prompt="Summarize the main content"
        )
        print(response["result"])

asyncio.run(main())
With Output Schema
from pydantic import BaseModel, Field
from scrapegraph_py import SyncClient

class WebsiteData(BaseModel):
    title: str = Field(description="The page title")
    description: str = Field(description="The meta description")

sgai_client = SyncClient(api_key="your-api-key-here")
response = sgai_client.smartscraper(
    website_url="https://example.com",
    user_prompt="Extract the title and description",
    output_schema=WebsiteData
)

print(response["result"])

📚 Documentation

For detailed documentation, visit docs.scrapegraphai.com

🛠️ Development

Setup

  1. Clone the repository:
git clone https://github.com/ScrapeGraphAI/scrapegraph-sdk.git
cd scrapegraph-sdk/scrapegraph-py
  1. Install dependencies:
uv sync
  1. Install pre-commit hooks:
uv run pre-commit install

Running Tests

# Run all tests
uv run pytest

# Run specific test file
poetry run pytest tests/test_client.py

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🔗 Links

💬 Support


Made with ❤️ by ScrapeGraph AI

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scrapegraph_py-1.5.0b1.tar.gz (106.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scrapegraph_py-1.5.0b1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file scrapegraph_py-1.5.0b1.tar.gz.

File metadata

  • Download URL: scrapegraph_py-1.5.0b1.tar.gz
  • Upload date:
  • Size: 106.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for scrapegraph_py-1.5.0b1.tar.gz
Algorithm Hash digest
SHA256 9e21a95f8455eb9813933b5272506e9e558453117f6ec76dea622cf7d4ebd40c
MD5 b2fce996ab4b5f0d3461bc7ef5a639ec
BLAKE2b-256 6d6fb131a78a4164a31b84676f7bb19f251c7b3e873b9e695fd453821bbe54ba

See more details on using hashes here.

File details

Details for the file scrapegraph_py-1.5.0b1-py3-none-any.whl.

File metadata

File hashes

Hashes for scrapegraph_py-1.5.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 4e55999b1cb1e895076ecf23a9e5dcfe481c5243359c740e6b3982cdef5aa9a3
MD5 130763e88cfeb297e8eddfe87cfaf159
BLAKE2b-256 b2eace5f3dbac754534b7819dedd9d7dac05f8fb127a2c9373df12a17509731a

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page