/free-ssl-proxies

A minimal python library that scrapes ssl proxies from https://sslproxies.org

Primary LanguagePythonMIT LicenseMIT

Description

free-ssl-proxies is a lightweight Python library that scrapes ssl proxies from https://sslproxies.org/, and provides some convenient objects and caching methods for working with the retrieved proxies. This library requires no external Python dependencies to work.

Usage

Installation

pip3 install .

Importing

from free_ssl_proxies import proxy_list as pl

First time retrieval

You can iterate through all the proxies currently available on sslproxies.org with the following code:

  • profile: If True, we will attempt to connect through each proxy
  • timeout: If the timeout is exceeded the proxy object will contain None for the avg_request_time (relatively slow proxy)
proxies = pl.ProxyList.from_ssl_proxies_org(profile=True, timeout=1)

for proxy in proxies:
    print(proxy.ip_address, proxy.port, proxy.cc, proxy.country, proxy.google, proxy.avg_request_time)

Caching

sslproxies.org refreshes their list every 10 minutes, so it doesn't make sense to constantly hammer their page with requests. This package offers a simple caching mechanism that can be used like so:

proxies = pl.ProxyList.from_ssl_proxies_org(profile=True, timeout=1)

pl.write_proxy_list_to_cache(proxies)

To access the cache later:

proxies = pl.ProxyList.from_cache()

Access

By country

You can use either the country name cc to find proxies.

for us_proxy in proxies.get_by_country("us"):
    print(us_proxy)

Fastest

You can get a sorted list of the fastest proxies if profiling has been done.

for fast_proxy in proxies.get_fastest():
    print(fast_proxy)

Random

You can get a random proxy selected from the fastest proxies if profiling has been done. If profiling has not been done then we will pick from the entire pool of available proxies.

proxy = proxies.random()