A Python client for interacting with the APCloudy platform
Project description
APCloudy
A Python client library for interacting with the APCloudy platform. This library provides a simple and intuitive interface for managing projects, spiders, and jobs on the APCloudy web scraping platform.
📚 Documentation
Complete documentation is available at apcloudy.readthedocs.io
Features
- Project Management: Create, update, and manage your APCloudy projects
- Spider Management: Deploy and manage web scraping spiders
- Job Management: Start, monitor, and manage scraping jobs
- Authentication: Secure API key-based authentication
- Error Handling: Comprehensive error handling with custom exceptions
- Rate Limiting: Built-in rate limiting support
Installation
Install apcloudy using pip:
pip install apcloudy
Quick Start
from apcloudy import APCloudyClient
# Initialize the client with your API key
client = APCloudyClient("your-api-key-here")
# Get all projects
projects = client.get_projects()
# Get a specific project
project = client.get_project("project-id")
# List spiders in a project
spiders = client.get_spiders("project-id")
# Start a job
job = client.start_job("project-id", "spider-name")
# Get job status
job_status = client.get_job("job-id")
API Reference
APCloudyClient
The main client class for interacting with the APCloudy API.
Methods
get_projects(): List all projectsget_project(project_id): Get a specific projectget_spiders(project_id): List spiders in a projectget_spider(project_id, spider_name): Get a specific spiderstart_job(project_id, spider_name, **kwargs): Start a new jobget_job(job_id): Get job detailsget_jobs(project_id): List jobs for a projectstop_job(job_id): Stop a running job
Models
Project: Represents an APCloudy projectSpider: Represents a spider within a projectJob: Represents a scraping jobJobState: Enumeration of possible job states
Exceptions
APIError: Base exception for API errorsAuthenticationError: Raised when authentication failsProjectNotFoundError: Raised when a project is not foundSpiderNotFoundError: Raised when a spider is not foundJobNotFoundError: Raised when a job is not foundRateLimitError: Raised when rate limits are exceeded
Development
Installing for Development
git clone https://github.com/yourusername/apcloudy.git
cd apcloudy
pip install -e ".[dev]"
Running Tests
pytest
Code Formatting
black apcloudy/
flake8 apcloudy/
Type Checking
mypy apcloudy/
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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
If you encounter any issues or have questions, please file an issue on the GitHub repository.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file apcloudy-0.1.6.tar.gz.
File metadata
- Download URL: apcloudy-0.1.6.tar.gz
- Upload date:
- Size: 40.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
232d6bb6e5c8354e387c30a34d10be7d4064d7d1e9da4f9fa47abd6e3d90d46d
|
|
| MD5 |
826fa1338fc983f729de0481582e7ea3
|
|
| BLAKE2b-256 |
f0ff059333da28db9d2b2745a9b53e0bcb07cfc16ae3ab15dd5877773b5c0932
|
File details
Details for the file apcloudy-0.1.6-py3-none-any.whl.
File metadata
- Download URL: apcloudy-0.1.6-py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c9a2d172ecf0eb40ffba808b2ade08b31212ed07acc8c16e4702c162fcb55b4
|
|
| MD5 |
9b51be6ea86657f66ca9a9daaa59a0a6
|
|
| BLAKE2b-256 |
e5d0afcc869a259508e91d071b05e28b006048746a24b761415f2672b0809968
|