# APCloudy
[](https://badge.fury.io/py/apcloudy)
[](https://pypi.org/project/apcloudy/)
[](https://opensource.org/licenses/MIT)
[](https://apcloudy.readthedocs.io/en/latest/?badge=latest)
[](https://pepy.tech/project/apcloudy)
[](https://github.com/psf/black)
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](https://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:
```bash
pip install apcloudy
```
## Quick Start
```python
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 projects
- `get_project(project_id)`: Get a specific project
- `get_spiders(project_id)`: List spiders in a project
- `get_spider(project_id, spider_name)`: Get a specific spider
- `start_job(project_id, spider_name, **kwargs)`: Start a new job
- `get_job(job_id)`: Get job details
- `get_jobs(project_id)`: List jobs for a project
- `stop_job(job_id)`: Stop a running job
### Models
- `Project`: Represents an APCloudy project
- `Spider`: Represents a spider within a project
- `Job`: Represents a scraping job
- `JobState`: Enumeration of possible job states
### Exceptions
- `APIError`: Base exception for API errors
- `AuthenticationError`: Raised when authentication fails
- `ProjectNotFoundError`: Raised when a project is not found
- `SpiderNotFoundError`: Raised when a spider is not found
- `JobNotFoundError`: Raised when a job is not found
- `RateLimitError`: Raised when rate limits are exceeded
## Development
### Installing for Development
```bash
git clone https://github.com/yourusername/apcloudy.git
cd apcloudy
pip install -e ".[dev]"
```
### Running Tests
```bash
pytest
```
### Code Formatting
```bash
black apcloudy/
flake8 apcloudy/
```
### Type Checking
```bash
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.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Support
If you encounter any issues or have questions, please file an issue on the [GitHub repository](https://github.com/fawadss1/apcloudy/issues).
[Unreleased]: https://github.com/fawadss1/apcloudy/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/fawadss1/apcloudy/releases/tag/v0.1.0
Raw data
{
"_id": null,
"home_page": "https://github.com/fawadss1/apcloudy",
"name": "apcloudy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "Fawad Ali <fawadstar6@gmail.com>",
"keywords": "apcloudy, api, client, web scraping, spiders",
"author": "Fawad Ali",
"author_email": "Fawad Ali <fawadstar6@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/19/f5/8416c22760c70dd31dc5b0bb791392032779384ef6a9d940d125e2639276/apcloudy-0.1.1.tar.gz",
"platform": null,
"description": "# APCloudy\r\n\r\n[](https://badge.fury.io/py/apcloudy)\r\n[](https://pypi.org/project/apcloudy/)\r\n[](https://opensource.org/licenses/MIT)\r\n[](https://apcloudy.readthedocs.io/en/latest/?badge=latest)\r\n[](https://pepy.tech/project/apcloudy)\r\n[](https://github.com/psf/black)\r\n\r\nA 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.\r\n\r\n## \ud83d\udcda Documentation\r\n\r\nComplete documentation is available at **[apcloudy.readthedocs.io](https://apcloudy.readthedocs.io/)**\r\n\r\n## Features\r\n\r\n- **Project Management**: Create, update, and manage your APCloudy projects\r\n- **Spider Management**: Deploy and manage web scraping spiders\r\n- **Job Management**: Start, monitor, and manage scraping jobs\r\n- **Authentication**: Secure API key-based authentication\r\n- **Error Handling**: Comprehensive error handling with custom exceptions\r\n- **Rate Limiting**: Built-in rate limiting support\r\n\r\n## Installation\r\n\r\nInstall apcloudy using pip:\r\n\r\n```bash\r\npip install apcloudy\r\n```\r\n\r\n## Quick Start\r\n\r\n```python\r\nfrom apcloudy import APCloudyClient\r\n\r\n# Initialize the client with your API key\r\nclient = APCloudyClient(\"your-api-key-here\")\r\n\r\n# Get all projects\r\nprojects = client.get_projects()\r\n\r\n# Get a specific project\r\nproject = client.get_project(\"project-id\")\r\n\r\n# List spiders in a project\r\nspiders = client.get_spiders(\"project-id\")\r\n\r\n# Start a job\r\njob = client.start_job(\"project-id\", \"spider-name\")\r\n\r\n# Get job status\r\njob_status = client.get_job(\"job-id\")\r\n```\r\n\r\n## API Reference\r\n\r\n### APCloudyClient\r\n\r\nThe main client class for interacting with the APCloudy API.\r\n\r\n#### Methods\r\n\r\n- `get_projects()`: List all projects\r\n- `get_project(project_id)`: Get a specific project\r\n- `get_spiders(project_id)`: List spiders in a project\r\n- `get_spider(project_id, spider_name)`: Get a specific spider\r\n- `start_job(project_id, spider_name, **kwargs)`: Start a new job\r\n- `get_job(job_id)`: Get job details\r\n- `get_jobs(project_id)`: List jobs for a project\r\n- `stop_job(job_id)`: Stop a running job\r\n\r\n### Models\r\n\r\n- `Project`: Represents an APCloudy project\r\n- `Spider`: Represents a spider within a project\r\n- `Job`: Represents a scraping job\r\n- `JobState`: Enumeration of possible job states\r\n\r\n### Exceptions\r\n\r\n- `APIError`: Base exception for API errors\r\n- `AuthenticationError`: Raised when authentication fails\r\n- `ProjectNotFoundError`: Raised when a project is not found\r\n- `SpiderNotFoundError`: Raised when a spider is not found\r\n- `JobNotFoundError`: Raised when a job is not found\r\n- `RateLimitError`: Raised when rate limits are exceeded\r\n\r\n## Development\r\n\r\n### Installing for Development\r\n\r\n```bash\r\ngit clone https://github.com/yourusername/apcloudy.git\r\ncd apcloudy\r\npip install -e \".[dev]\"\r\n```\r\n\r\n### Running Tests\r\n\r\n```bash\r\npytest\r\n```\r\n\r\n### Code Formatting\r\n\r\n```bash\r\nblack apcloudy/\r\nflake8 apcloudy/\r\n```\r\n\r\n### Type Checking\r\n\r\n```bash\r\nmypy apcloudy/\r\n```\r\n\r\n## Contributing\r\n\r\nContributions 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.\r\n\r\n1. Fork the repository\r\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\r\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\r\n4. Push to the branch (`git push origin feature/amazing-feature`)\r\n5. Open a Pull Request\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## Support\r\n\r\nIf you encounter any issues or have questions, please file an issue on the [GitHub repository](https://github.com/fawadss1/apcloudy/issues).\r\n\r\n\r\n[Unreleased]: https://github.com/fawadss1/apcloudy/compare/v0.1.0...HEAD\r\n[0.1.0]: https://github.com/fawadss1/apcloudy/releases/tag/v0.1.0\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python client for interacting with the APCloudy platform",
"version": "0.1.1",
"project_urls": {
"Bug Reports": "https://github.com/fawadss1/apcloudy/issues",
"Documentation": "https://github.com/fawadss1/apcloudy#readme",
"Homepage": "https://github.com/fawadss1/apcloudy",
"Source": "https://github.com/fawadss1/apcloudy"
},
"split_keywords": [
"apcloudy",
" api",
" client",
" web scraping",
" spiders"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "9009944f6d9a7c66528a3565afe53916d71507cd9ac48e95f1271ec0ac49b5e6",
"md5": "09c29b77552f51403e4fd5175f3e6fa6",
"sha256": "83483a5f2827cd282a663efd404a1c0b5db77212d3f81dcfaacf08091f615877"
},
"downloads": -1,
"filename": "apcloudy-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "09c29b77552f51403e4fd5175f3e6fa6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 15764,
"upload_time": "2025-08-06T12:17:06",
"upload_time_iso_8601": "2025-08-06T12:17:06.669693Z",
"url": "https://files.pythonhosted.org/packages/90/09/944f6d9a7c66528a3565afe53916d71507cd9ac48e95f1271ec0ac49b5e6/apcloudy-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "19f58416c22760c70dd31dc5b0bb791392032779384ef6a9d940d125e2639276",
"md5": "f9447e8fcc766a557a0dfe7822939596",
"sha256": "b2b047455e56cb62f0a1f303d93323d3ae6d258f8c6a9f480652327090db59bf"
},
"downloads": -1,
"filename": "apcloudy-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "f9447e8fcc766a557a0dfe7822939596",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 41497,
"upload_time": "2025-08-06T12:17:08",
"upload_time_iso_8601": "2025-08-06T12:17:08.081075Z",
"url": "https://files.pythonhosted.org/packages/19/f5/8416c22760c70dd31dc5b0bb791392032779384ef6a9d940d125e2639276/apcloudy-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-06 12:17:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fawadss1",
"github_project": "apcloudy",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "apcloudy"
}