Name | pyskoob JSON |
Version |
0.1.20
JSON |
| download |
home_page | None |
Summary | Python client for the Skoob website handling authentication and HTML parsing |
upload_time | 2025-08-04 02:04:32 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | None |
keywords |
skoob
books
client
api
scraping
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# PySkoob
[](https://pypi.org/project/pyskoob/)

[](https://github.com/victor-soeiro/pyskoob/actions/workflows/ci.yml)
[](https://victor-soeiro.github.io/pyskoob/)
[](LICENSE)
**PySkoob** is a Python client that makes it easy to interact with the Skoob website. It takes care of authentication and HTML parsing so you can focus on your automation or data collection tasks.
## Features
* Search books by title, author or ISBN
* Retrieve detailed book information and reviews
* Access user profiles and reading statistics
* Authenticate using email/password or an existing session cookie
## Services
Documentation for each service is available on GitHub Pages:
* [Author Service](https://victor-soeiro.github.io/pyskoob/author_service/)
* [Books Service](https://victor-soeiro.github.io/pyskoob/books_service/)
* [Publisher Service](https://victor-soeiro.github.io/pyskoob/publishers_service/)
* [Users Service](https://victor-soeiro.github.io/pyskoob/users_service/)
* [Profile Service](https://victor-soeiro.github.io/pyskoob/profile_service/)
## Installation
Install the latest release from PyPI:
```bash
python -m pip install pyskoob
```
Or install the bleeding edge version from GitHub:
```bash
python -m pip install git+https://github.com/victor-soeiro/pyskoob.git
```
## Authentication
You can authenticate in two different ways:
1. **Email and password**
```python
from pyskoob import SkoobClient
with SkoobClient() as client:
me = client.auth.login(email="you@example.com", password="secret")
```
2. **Session cookie**
```python
from pyskoob import SkoobClient
with SkoobClient() as client:
me = client.auth.login_with_cookies("PHPSESSID_TOKEN")
```
Once authenticated you can access all other services.
## Usage example
### Search for books
```python
from pyskoob import SkoobClient
from pyskoob.models.enums import BookSearch
with SkoobClient() as client:
results = client.books.search("Harry Potter", BookSearch.TITLE)
for book in results.results:
print(book.title, book.book_id)
```
### Fetch book details
```python
from pyskoob import SkoobClient
with SkoobClient() as client:
book = client.books.get_by_id(1) # replace with a real edition ID
print(book.title, book.publisher.name)
```
### Authenticate and access your profile
```python
from pyskoob import SkoobClient
with SkoobClient() as client:
# TIP: use environment variables or a secrets manager instead of hard-coding credentials
me = client.auth.login(email="you@example.com", password="secret")
print(me.name)
```
## Running tests
Install the project in editable mode and run the test suite:
```bash
uv pip install -e .[dev]
pytest -vv
```
## Contributing
Before working on new features, set up a local development environment:
```bash
# Install uv if it's not already available
python -m pip install uv
# Create and activate a virtual environment
uv venv .venv
source .venv/bin/activate
# On Windows
.\.venv\Scripts\activate
# Install the project with development dependencies
uv pip install -e .[dev]
# Install pre-commit hooks
pre-commit install
# Verify linting, formatting, and tests
pytest -vv
pre-commit run --all-files
```
Once everything is ready:
1. Fork the repository and create a branch for your feature.
2. Implement your change and add tests.
3. Format your code with Ruff:
```bash
ruff format .
```
4. Ensure lint checks pass:
```bash
ruff check .
```
5. Run `pytest -vv` and `pre-commit run --all-files` and ensure everything passes.
6. Open a pull request describing your changes.
## Learn more
* [Examples](https://victor-soeiro.github.io/pyskoob/advanced_usage/)
* [Documentation](https://victor-soeiro.github.io/pyskoob/)
* [Contributing guidelines](https://victor-soeiro.github.io/pyskoob/contributing/)
Raw data
{
"_id": null,
"home_page": null,
"name": "pyskoob",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "skoob, books, client, api, scraping",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/a2/58/6e12f0055b4c1f28618a86b25394e7591b1fc879dacf6ffd03d277f4df3d/pyskoob-0.1.20.tar.gz",
"platform": null,
"description": "# PySkoob\n[](https://pypi.org/project/pyskoob/)\n\n[](https://github.com/victor-soeiro/pyskoob/actions/workflows/ci.yml)\n[](https://victor-soeiro.github.io/pyskoob/)\n[](LICENSE)\n\n**PySkoob** is a Python client that makes it easy to interact with the Skoob website. It takes care of authentication and HTML parsing so you can focus on your automation or data collection tasks.\n\n## Features\n\n* Search books by title, author or ISBN\n* Retrieve detailed book information and reviews\n* Access user profiles and reading statistics\n* Authenticate using email/password or an existing session cookie\n\n## Services\n\nDocumentation for each service is available on GitHub Pages:\n\n* [Author Service](https://victor-soeiro.github.io/pyskoob/author_service/)\n* [Books Service](https://victor-soeiro.github.io/pyskoob/books_service/)\n* [Publisher Service](https://victor-soeiro.github.io/pyskoob/publishers_service/)\n* [Users Service](https://victor-soeiro.github.io/pyskoob/users_service/)\n* [Profile Service](https://victor-soeiro.github.io/pyskoob/profile_service/)\n\n## Installation\n\nInstall the latest release from PyPI:\n\n```bash\npython -m pip install pyskoob\n```\n\nOr install the bleeding edge version from GitHub:\n\n```bash\npython -m pip install git+https://github.com/victor-soeiro/pyskoob.git\n```\n\n## Authentication\n\nYou can authenticate in two different ways:\n\n1. **Email and password**\n\n ```python\n from pyskoob import SkoobClient\n\n with SkoobClient() as client:\n me = client.auth.login(email=\"you@example.com\", password=\"secret\")\n ```\n\n2. **Session cookie**\n\n ```python\n from pyskoob import SkoobClient\n\n with SkoobClient() as client:\n me = client.auth.login_with_cookies(\"PHPSESSID_TOKEN\")\n ```\n\nOnce authenticated you can access all other services.\n\n## Usage example\n\n### Search for books\n\n```python\nfrom pyskoob import SkoobClient\nfrom pyskoob.models.enums import BookSearch\n\nwith SkoobClient() as client:\n results = client.books.search(\"Harry Potter\", BookSearch.TITLE)\n for book in results.results:\n print(book.title, book.book_id)\n```\n\n### Fetch book details\n\n```python\nfrom pyskoob import SkoobClient\n\nwith SkoobClient() as client:\n book = client.books.get_by_id(1) # replace with a real edition ID\n print(book.title, book.publisher.name)\n```\n\n### Authenticate and access your profile\n\n```python\nfrom pyskoob import SkoobClient\n\nwith SkoobClient() as client:\n # TIP: use environment variables or a secrets manager instead of hard-coding credentials\n me = client.auth.login(email=\"you@example.com\", password=\"secret\")\n print(me.name)\n```\n\n## Running tests\n\nInstall the project in editable mode and run the test suite:\n\n```bash\nuv pip install -e .[dev]\npytest -vv\n```\n\n## Contributing\n\nBefore working on new features, set up a local development environment:\n\n```bash\n# Install uv if it's not already available\npython -m pip install uv\n\n# Create and activate a virtual environment\nuv venv .venv\nsource .venv/bin/activate\n# On Windows\n.\\.venv\\Scripts\\activate\n\n# Install the project with development dependencies\nuv pip install -e .[dev]\n\n# Install pre-commit hooks\npre-commit install\n\n# Verify linting, formatting, and tests\npytest -vv\npre-commit run --all-files\n```\n\nOnce everything is ready:\n\n1. Fork the repository and create a branch for your feature.\n2. Implement your change and add tests.\n3. Format your code with Ruff:\n\n ```bash\n ruff format .\n ```\n4. Ensure lint checks pass:\n\n ```bash\n ruff check .\n ```\n5. Run `pytest -vv` and `pre-commit run --all-files` and ensure everything passes.\n6. Open a pull request describing your changes.\n\n## Learn more\n\n* [Examples](https://victor-soeiro.github.io/pyskoob/advanced_usage/)\n* [Documentation](https://victor-soeiro.github.io/pyskoob/)\n* [Contributing guidelines](https://victor-soeiro.github.io/pyskoob/contributing/)\n",
"bugtrack_url": null,
"license": null,
"summary": "Python client for the Skoob website handling authentication and HTML parsing",
"version": "0.1.20",
"project_urls": null,
"split_keywords": [
"skoob",
" books",
" client",
" api",
" scraping"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "70f4420700073467d4b91cd1404a409edd5c0fb1a0a195f8f0d084b5c8d349c5",
"md5": "7c476eb583a24e970372084bbe3ad888",
"sha256": "4f749d8efe5f1a7928c342bcf32a296120e5d1987b32bcff47d9d44284fb2e40"
},
"downloads": -1,
"filename": "pyskoob-0.1.20-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7c476eb583a24e970372084bbe3ad888",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 31611,
"upload_time": "2025-08-04T02:04:31",
"upload_time_iso_8601": "2025-08-04T02:04:31.921445Z",
"url": "https://files.pythonhosted.org/packages/70/f4/420700073467d4b91cd1404a409edd5c0fb1a0a195f8f0d084b5c8d349c5/pyskoob-0.1.20-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a2586e12f0055b4c1f28618a86b25394e7591b1fc879dacf6ffd03d277f4df3d",
"md5": "39a0f4dfed83e9043c3893535b653f8b",
"sha256": "ac05299771a8828928ba1e4c59b00e72f9c432219465aeceb4f79e577f943cce"
},
"downloads": -1,
"filename": "pyskoob-0.1.20.tar.gz",
"has_sig": false,
"md5_digest": "39a0f4dfed83e9043c3893535b653f8b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 33097,
"upload_time": "2025-08-04T02:04:32",
"upload_time_iso_8601": "2025-08-04T02:04:32.975146Z",
"url": "https://files.pythonhosted.org/packages/a2/58/6e12f0055b4c1f28618a86b25394e7591b1fc879dacf6ffd03d277f4df3d/pyskoob-0.1.20.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-04 02:04:32",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pyskoob"
}