Skip to main content

Find fetch & validate free proxies fast.

Project description

Ballyregan

Find fetch & validate free proxies fast.

Package version Supported Python versions License: Apache 2.0


Ballyregan is a super fast proxy fetcher.
It provides a python package and an easy-to-use CLI to help you fetch <bFree Tested Proxies fast, and keep your privacy.


Key features:


How does it work?

When you use the ProxyFetcher to fetch a proxy, it performs several steps:

  1. Gather all the available proxies from a list of built-in providers (each provider gathers its own and returns it to the fetcher).
  1. Filter all the gathered proxies by the given protocols and anonymities (if exist).
  2. Validate the filtered proxies and return them.

Note
You can write and append your own custom providers and pass them to the ProxyFetcher class as an attribute.
Every custom proxy provider must implement the IProxyProvider base interface.


Behind the scenes

Fetching a proxy is an IO bound operation that depends on the network. A common approach for this problem is performing your network requests async.
After digging a bit, and testing Threads, Greenlets, and async operations, we decided to go the async way.
To perform async HTTP requests, ballyregan uses aiohttp and asyncio, as "asyncio is often a perfect fit for IO-bound and high-level structured network code." (from asyncio docs).
By using the power of async HTTP requests, ballyregan can validate thousands of proxies really fast.
it to the ProxyFetcher class as an attribute.

Every custom proxy provider must implement the IProxyProvider base interface.


Install

All you need to do is install the package from pypi, and it will automatically install the CLI for you.

pip install ballyregan

Usage

📦 Package

Create a fetcher instance

from ballyregan import ProxyFetcher

# Setting the debug mode to True, defaults to False
fetcher = ProxyFetcher(debug=True)

Get one proxy

proxy = fetcher.get_one()
print(proxy)

Get multiple proxies

proxies = fetcher.get(limit=4)
print(proxies)

Get proxies by filters

from ballyregan.models import Protocols, Anonymities

proxies = fetcher.get(
  limit=4,
  protocols=[Protocols.HTTPS, Protocols.SOCKS5],
  anonymities=[Anonymities.ELITE]
)
print(proxies)

💻 CLI

Need some help?

ballyregan get --help

Get one proxy

ballyregan get

Get all proxies

ballyregan get --all

Use debug mode

ballyregan --debug get [OPTIONS]

Format output to json

ballyregan get -o json

Get proxies by limit

ballyregan get -l 4

Get proxies by filters

ballyregan get -l 4 -p https -p socks5 -a elite

📝 License

Copyright © 2022 Idan Daniel.
This project is Apache License Version 2.0 licensed.

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

ballyregan-1.0.6.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

ballyregan-1.0.6-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file ballyregan-1.0.6.tar.gz.

File metadata

  • Download URL: ballyregan-1.0.6.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.1 CPython/3.9.16 Linux/5.15.0-1034-azure

File hashes

Hashes for ballyregan-1.0.6.tar.gz
Algorithm Hash digest
SHA256 b850f8d0d733a28e11a938a188795698e625cf30986485f1661e83ef136eb65f
MD5 69365d2dd9139eedab129c1c56ee1008
BLAKE2b-256 36019f9f9b6e042cc7d0394b7856d15ec762534b076adb903dc47371c6879010

See more details on using hashes here.

File details

Details for the file ballyregan-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: ballyregan-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.1 CPython/3.9.16 Linux/5.15.0-1034-azure

File hashes

Hashes for ballyregan-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c7aa546ea99fc70b3457343f30327bc24d3c6c767e081e7e279c8e7fac2ed167
MD5 29d2028db4c3daec21985d098bf33073
BLAKE2b-256 344e2b72708398d509457ed6e08783775d18ec2257afc6527c42b5982b2902ea

See more details on using hashes here.

Supported by

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