Welcome to the start of this new project! This project provides an easy to use interface for interacting with many different proxy providers under the hood through the `ProxyProvider` abstraction.
I intend to integrate this into the `TikTokAPI` repository within the next few weeks to allow people to use existing and develop their own proxy providers through this.
Here's a quick example of the shared abstraction if anyone's just looking at the release and not the docs
py
from proxyproviders import Webshare, BrightData, ProxyProvider
import requests
import os
def request_with_proxy(provider: ProxyProvider):
requests_proxy = None
if provider:
proxies = provider.list_proxies()
requests_proxy = {
"http": f"http://{proxies[0].username}:{proxies[0].password}{proxies[0].proxy_address}:{proxies[0].port}",
"https": f"http://{proxies[0].username}:{proxies[0].password}{proxies[0].proxy_address}:{proxies[0].port}",
}
r = requests.get("https://httpbin.org/ip", proxies=requests_proxy)
return r.json()
webshare = Webshare(api_key=os.getenv("WEBSHARE_API_KEY"))
brightdata = BrightData(api_key=os.getenv("BRIGHTDATA_API_KEY"), zone="my_zone")
print(f"Your IP: {request_with_proxy(None)}")
print(f"Webshare: {request_with_proxy(webshare)}")
print(f"BrightData: {request_with_proxy(brightdata)}")
==================================================================================================== test session starts =====================================================================================================
platform darwin -- Python 3.11.2, pytest-8.3.4, pluggy-1.5.0
configfile: pyproject.toml
collected 21 items
tests/integration/test_brightdata_integration.py . [ 4%]
tests/integration/test_webshare_integration.py . [ 9%]
tests/providers/test_brightdata.py ...... [ 38%]
tests/providers/test_webshare.py ....... [ 71%]
tests/test_exceptions.py .. [ 80%]
tests/test_proxy_provider.py .... [100%]
===================================================================================================== 21 passed in 2.57s =====================================================================================================
Name Stmts Miss Branch BrPart Cover
--------------------------------------------------------------------------
proxyproviders/__init__.py 5 0 0 0 100%
proxyproviders/exceptions.py 16 0 0 0 100%
proxyproviders/models/__init__.py 0 0 0 0 100%
proxyproviders/models/proxy.py 23 0 0 0 100%
proxyproviders/providers/brightdata.py 53 2 10 1 95%
proxyproviders/providers/webshare.py 46 0 6 0 100%
proxyproviders/proxy_provider.py 38 1 8 0 98%
--------------------------------------------------------------------------
TOTAL 181 3 24 1 98%