Metadata-Version: 2.1
Name: proxygetter
Version: 0.2.1
Summary: A utility to get and filter free proxies
Home-page: https://github.com/ArthurVerrez/proxygetter
Author: Arthur Verrez
Author-email: macdouglass@outlook.com
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp==3.9.1
Requires-Dist: aiosignal==1.3.1
Requires-Dist: async-timeout==4.0.3
Requires-Dist: attrs==23.1.0
Requires-Dist: beautifulsoup4==4.12.2
Requires-Dist: certifi==2023.7.22
Requires-Dist: charset-normalizer==3.2.0
Requires-Dist: frozenlist==1.4.0
Requires-Dist: idna==3.4
Requires-Dist: multidict==6.0.4
Requires-Dist: nest-asyncio==1.5.8
Requires-Dist: requests==2.31.0
Requires-Dist: soupsieve==2.5
Requires-Dist: urllib3==2.0.4
Requires-Dist: yarl==1.9.2

# proxygetter

## Description

`proxygetter` is a Python library that provides a fast and customizable way to scrape, filter, and manage proxies. It's powered by asyncio and aiohttp to validate proxies asynchronously. Originally designed to scrape from [sslproxies.org](https://www.sslproxies.org/), it now supports customizable sources and multiple filters.

## Installation

Install the package via pip:

```bash
pip install proxygetter
```

## Features

### Proxy Management
Manage your proxies with ease using the `ProxyManager` class.

```python
from proxygetter import ProxyManager
manager = ProxyManager()
```

#### Asynchronous Filtering
Filter proxies based on their validity asynchronously.

```python
valid_proxies = manager.filter_with_validity(url="http://example.com")
```

### Proxy Information
Access details about each proxy through the `Proxy` class.

```python
proxy = valid_proxies[0]
print(proxy.get_requests_format())
print(proxy.get_selenium_format())
```

### Advanced Filters

Get proxies using advanced filters like country code, anonymity, https support, Google compatibility, and last checked time.

```python
filtered_proxies = manager.get_proxies(country_code='US', anonymity='elite proxy', https=True, google=True, last_checked_max=600)
```

### Fetch a Random Proxy

You can fetch a random proxy based on specified filters.

```python
random_proxy = manager.get_random_proxy(country_code='US', https=True)
```

### Environment Configuration

Configure default user agent and timeout using environment variables.

```bash
export PROXY_URL_CHECKER_USER_AGENT=your_user_agent
export PROXY_URL_CHECKER_TIMEOUT=your_timeout_value
```

## License

This project is under the MIT License - see the [LICENSE](LICENSE) file for details.

## Upcoming Features

- Proxy blacklisting
- Additional proxy databases
- Enhanced documentation and examples

Feel free to contribute or suggest improvements.
