![soupsavvy](https://github.com/sewcio543/soupsavvy/blob/main/resources/logo.png?raw=true)
========

## Powerful and flexible web scraping **Search Engine**

[![PyPI](https://img.shields.io/pypi/v/soupsavvy?color=orange)](https://pypi.org/project/soupsavvy/) [![Python Versions](https://img.shields.io/pypi/pyversions/soupsavvy)](https://www.python.org/) [![Codecov](https://codecov.io/gh/sewcio543/soupsavvy/graph/badge.svg?token=RZ51VS3QLB)](https://codecov.io/gh/sewcio543/soupsavvy) [![Docs link](https://img.shields.io/badge/docs-read-blue)](https://soupsavvy.readthedocs.io)

## Table of Contents

- [About](#about)
- [Key features](#key-features)
- [Installation](#installation)
- [Documentation](#documentation)
- [Demos](#demos)
- [Contributing](#contributing)
- [License](#license)
- [Acknowledgements](#acknowledgements)

## About

With many web scraping libraries available, each with unique interfaces and conventions, `soupsavvy` provides conistent and easy way of building selection workflows.

With `soupsavvy`, developers can focus on data extraction workflows instead of wrestling with library-specific quirks and inconsistencies. Eliminate complexity and introduce scalability and maintainability to your web scraping projects.

## Key Features

`soupsavvy` introduces the concept of `Selector`, a declarative, consistent, and reusable search procedure that is based on following principles:

- **Decoupling**: Selection logic is abstracted away from DOM node and traversal implementations.
- **Framework-Agnostic**: Operates consistently with any supported library.
- **Flexibile & Extensibile**: Lightweight, reusable components used to build complex selection workflows.

## Installation

`soupsavvy` is published on PyPi and can be installed via pip:

```bash
pip install soupsavvy
```

## Documentation

Full documentation can be found at **[documentation](https://soupsavvy.readthedocs.io)**.

## Demos

For more information about the package, its concepts and usage, read `Demos` section of the **[documentation](https://soupsavvy.readthedocs.io)**. It's step by step guide to the most important features of the package.

## Contributing

If you'd like to contribute to soupsavvy, feel free to check out the [GitHub repository](https://github.com/sewcio543/soupsavvy) and submit pull requests into one of development branches. Any feedback, bug reports, or feature requests are welcome! In case of any doubts, follow [Contribution Guidelines](https://github.com/sewcio543/soupsavvy/blob/main/CONTRIBUTING.md)

## License

`soupsavvy` is licensed under ![MIT License](https://img.shields.io/badge/license-MIT-green?style=plastic), allowing for both personal and commercial use. See the `LICENSE` file for more information.

-----------------

**Happy scraping!** ✨
