Skip to main content

Playwright-based scraper implementation for The Pudim Hunter platform

Project description

Pudim Hunter Driver Scraper 🍮

Python 3.9 Pytest 7.4 CI codecov PyPI version

Table of Contents

  • Features
  • Usage
    • Installation
    • Interface Overview
  • Project Structure
  • Installation
  • Virtual Environment Setup
    • Prerequisites
    • macOS and Linux
    • Windows
    • Troubleshooting
  • Development
  • Contributing
    • Getting Started
    • Pull Request Process
    • Repository
  • License

A Python package that provides a Playwright-based scraper implementation for The Pudim Hunter platform. This package extends the pudim-hunter-driver interface to provide a common base for implementing job board scrapers.

Features

  • Playwright-based web scraping
  • Async support for better performance
  • Headless browser automation
  • Easy-to-extend base classes for job board implementations
  • Built-in error handling and resource management
  • Type hints and validation using Pydantic

Usage

Installation

You can install the package directly from PyPI:

# Install directly using pip
pip install pudim-hunter-driver-scraper

# Or add to your requirements.txt
pudim-hunter-driver-scraper>=0.0.1  # Replace with the version you need

For development installations, see the Development section.

Interface Overview

This package provides the base scraper implementation for job search drivers. To create a scraper for a specific job board, you'll need to extend the ScraperJobDriver class and implement the required methods.

  1. ScraperJobDriver (ABC) - The base scraper class that implements JobDriver:

    • async build_search_url(query: JobQuery) -> str
    • def get_selectors() -> Dict[str, str]
    • def transform_data(data: Dict[str, Any]) -> Optional[Job]
  2. PlaywrightScraper - The base scraper implementation:

    • Supports both sync and async operations
    • Handles browser lifecycle
    • Provides navigation and data extraction methods
  3. Exceptions:

    • Inherits all exceptions from pudim-hunter-driver
    • Adds scraper-specific error handling

Project Structure

pudim-hunter-driver-scraper/
├── src/
│   └── pudim_hunter_driver_scraper/
│       ├── __init__.py          # Package initialization
│       ├── scraper.py           # PlaywrightScraper implementation
│       └── driver.py            # ScraperJobDriver implementation
├── tests/                       # Test directory
│   └── __init__.py
├── README.md                    # This file
├── requirements.txt             # Direct dependencies
├── setup.py                     # Package setup
└── pyproject.toml              # Project configuration

Installation

From PyPI:

pip install pudim-hunter-driver-scraper

From source:

git clone git@github.com:luismr/pudim-hunter-driver-scraper.git
cd pudim-hunter-driver-scraper
pip install -r requirements.txt

For development:

pip install -e .

Virtual Environment Setup

We strongly recommend using a virtual environment for development and testing. This isolates the project dependencies from your system Python packages.

Prerequisites

  • Python 3.9 or higher
  • pip (Python package installer)
  • venv module (usually comes with Python 3)

macOS and Linux

  1. Open Terminal and navigate to the project directory:
cd pudim-hunter-driver-scraper
  1. Create a virtual environment:
python3.9 -m venv venv
  1. Activate the virtual environment:
source venv/bin/activate
  1. Install dependencies:
pip install -r requirements.txt
pip install -e .  # for development
  1. Install Playwright browsers:
playwright install chromium
  1. To deactivate when done:
deactivate

Windows

  1. Open Command Prompt or PowerShell and navigate to the project directory:
cd pudim-hunter-driver-scraper
  1. Create a virtual environment:
python -m venv venv
  1. Activate the virtual environment:
  • In Command Prompt:
.\venv\Scripts\activate.bat
  • In PowerShell:
.\venv\Scripts\Activate.ps1
  1. Install dependencies:
pip install -r requirements.txt
pip install -e .  # for development
  1. Install Playwright browsers:
playwright install chromium
  1. To deactivate when done:
deactivate

Troubleshooting

macOS/Linux

  • If python3.9 is not found, install it using your package manager:
    • macOS (with Homebrew): brew install python@3.9
    • Ubuntu/Debian: sudo apt-get install python39 python39-venv
    • CentOS/RHEL: sudo yum install python39 python39-devel

Windows

  • Ensure Python is added to your PATH during installation
  • If PowerShell execution policy prevents activation:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Development

  1. Create and activate a virtual environment:
python3.9 -m venv venv
source venv/bin/activate
  1. Install in development mode:
pip install -e .

Contributing

We love your input! We want to make contributing to Pudim Hunter Driver Scraper as easy and transparent as possible, whether it's:

  • Reporting a bug
  • Discussing the current state of the code
  • Submitting a fix
  • Proposing new features
  • Becoming a maintainer

Getting Started

  1. Fork the repository
# Clone the repository
git clone git@github.com:luismr/pudim-hunter-driver-scraper.git
cd pudim-hunter-driver-scraper
# Create your feature branch
git checkout -b feature/amazing-feature
# Set up development environment
python3.9 -m venv venv
source venv/bin/activate
pip install -e .
  1. Make your changes

    • Write clear, concise commit messages
    • Add tests for any new functionality
    • Ensure all tests pass: pytest tests/ -v
  2. Push to your fork and submit a pull request

git push origin feature/amazing-feature

Pull Request Process

  1. Update the README.md with details of changes if needed
  2. Add any new dependencies to requirements.txt
  3. Update the tests if needed
  4. The PR will be merged once you have the sign-off of the maintainers

Repository

  • Main repository: github.com/luismr/pudim-hunter-driver-scraper
  • Issue tracker: github.com/luismr/pudim-hunter-driver-scraper/issues

License

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

Copyright (c) 2024-2025 Luis Machado Reis

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

pudim-hunter-driver-scraper-0.0.10.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

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

pudim_hunter_driver_scraper-0.0.10-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file pudim-hunter-driver-scraper-0.0.10.tar.gz.

File metadata

File hashes

Hashes for pudim-hunter-driver-scraper-0.0.10.tar.gz
Algorithm Hash digest
SHA256 99b540b97e560251f76f48b3810c96187c93ff30c1b40bef964ff7842c64b96e
MD5 7f6ff32160fbbf4f12c00f530692fd4b
BLAKE2b-256 be3f05ea37eeddfcc7fd9ea5fd8f9003dfa6b8fd550ec5985de1116394f99182

See more details on using hashes here.

File details

Details for the file pudim_hunter_driver_scraper-0.0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for pudim_hunter_driver_scraper-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 f770cb4a685d79280dfbdaca622b5cc247919cff8146810e4f5e7b5cc6a69d8b
MD5 d291a8ecbec17b8ea85a5cdba623ca9e
BLAKE2b-256 3cb4c76bc69a8e3a24d65c985a830bccd5193e8fc441bf97659cfb8735d8f14e

See more details on using hashes here.

Supported by

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