Auxn Agent
Overview
Auxn Agent is a web scraping and data extraction tool designed to automate the process of collecting information from websites. Built with modern Python async capabilities, it uses Playwright for browser automation and SQLite for efficient data storage.
Status: Alpha (v0.1.0)
Current test coverage: 84%
Key Features
- ✅ Asynchronous web scraping with Playwright
- ✅ Automatic pagination handling
- ✅ SQLite database with SQLAlchemy ORM
- ✅ Comprehensive test suite
- ✅ Configurable logging system
- ✅ Type-safe data models with Pydantic
Requirements
- Python 3.10 or higher
- Poetry for dependency management
- System dependencies for Playwright
# Ubuntu/Debian sudo apt-get install -y \ libevent-2.1-7 \ libavif16
Installation
-
Clone the repository:
git clone https://github.com/your-username/auxn-agent.git cd auxn-agent
-
Install Poetry (if not already installed):
curl -sSL https://install.python-poetry.org | python3 -
-
Install dependencies:
poetry install -
Install Playwright browsers:
poetry run playwright install chromium
-
Install browser dependencies:
poetry run playwright install-deps
Running Tests
# Run all tests
poetry run pytest
# Run with coverage report
poetry run pytest --cov=src
# Run specific test file
poetry run pytest tests/test_scraper.py
Usage Example
from src.scraper.scraper_manager import ScraperManager
import asyncio
async def main():
manager = ScraperManager()
listings = await manager.scrape_listings(
url="https://example.com",
listing_selector=".listing",
next_button_selector=".next-page"
)
print(f"Found {len(listings)} listings")
if __name__ == "__main__":
asyncio.run(main())
Project Structure
auxn-agent/
├── src/
│ ├── database/ # Database models and CRUD operations
│ ├── models/ # Pydantic data models
│ ├── scraper/ # Web scraping logic
│ └── utils/ # Utilities and helpers
├── tests/ # Test suite
└── poetry.lock # Dependency lock file
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Run tests (
poetry run pytest) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
Metadata
Release files for auxn-agent 0.2.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 | |
|---|---|---|---|
| auxn_agent-0.2.0.tar.gz | 8.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| auxn_agent-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.2 kB
Release files / auxn_agent-0.2.0.tar.gz
| Download URL | auxn_agent-0.2.0.tar.gz |
|---|---|
| Size | 8.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa449e2e1c2956cdcc1186e5df522f5d65b470efd023b06cfc8805cb0f66bc65
|
|
BLAKE2b-256 checksum How to use checksums |
69bab83ccba64c7e4fda9417d4f2f3db733c7a4dc8a5589315813231c82e50bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
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 Feb 6, 2025.
Transparency logRelease files / auxn_agent-0.2.0-py3-none-any.whl
| Download URL | auxn_agent-0.2.0-py3-none-any.whl |
|---|---|
| Size | 11.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0e3921ab141d4de08f677294e2b02e8ecb38f7058f30effc7aa2b9fbd00c6fae
|
|
BLAKE2b-256 checksum How to use checksums |
3dfd3a30db7e1a6aea9bed8f91f0c8c803c54e3c52017175bcf7d7d6b42c6088
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
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 Feb 6, 2025.
Transparency log