A simple proxy manager for Python with WebShare API support
Project description
ProxyMan 🌐
A simple Proxy manager for Python
Created with ❤️ by @MeshMonitors
Features
✨ Proxy Management:
- Load proxies from a file
- Support for IP-based and username-password authentication
🔄 Proxy Refresh:
- Automatically refresh the proxy list from a remote source
- Filter proxies based on location (US, UK, FR, or all)
🔀 Random Proxy:
- Retrieve a random proxy from the loaded list
Installation
ProxyMan can be installed using pip
:
pip install ProxyMan
Usage
Loading proxies from a file
from ProxyMan import ProxyMan, AuthType
import os
# Load proxies from a file
current_dir = os.path.dirname(os.path.realpath(__file__))
current_dir = os.path.dirname(current_dir)
pm = ProxyMan(file_path=current_dir + "/proxies.txt", auth=AuthType.IP)
Configuring ProxyMan
from ProxyMan import ProxyMan, Filter, AuthType
# Create a ProxyMan instance
webshare_api_key: str = "" # Optional (required to use the refresh feature)
scrape_filter: Filter = Filter.ALL # Optional (default: Filter.ALL) Filter proxies based on location
fail_count: int = 3 # Optional (default: 3) Remove a proxy from the list after it fails this many times
proxies_to_scrape: int = 3000 # Optional (default: 3000)
auth_type: AuthType = AuthType.IP # Optional (default: AuthType.IP) The type of authentication to use (IP or USER_PASS)
pm = ProxyMan(api_key=webshare_api_key, auth=auth_type, scrape_filter=scrape_filter, fail_count=fail_count, proxies_to_scrape=proxies_to_scrape)
# Get a random proxy
proxy: dict = pm.random()
print(proxy) # { "http": "http://0.0.0.0:8080"", "https": "http://0.0.0.0:8080" }
Failing a proxy
# If proxy fails somewhere in your code, call the fail method
# It will be removed from the list after it fails 3 times (or whatever you set fail_count to)
pm.increment_bad_proxies(proxy['http'])
Refreshing the proxy list
# Refresh the proxy list from the remote source
# This will overwrite the current list and update proxies.txt with the new list
await pm.update_proxies()
Getting a random proxy
# Get a random proxy from the list
proxy: dict = pm.random()
# Make a request
requests.get("https://example.com", proxies=proxy)
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
ProxyMan-0.0.8.tar.gz
(4.8 kB
view details)
File details
Details for the file ProxyMan-0.0.8.tar.gz
.
File metadata
- Download URL: ProxyMan-0.0.8.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a41876c36e1599e0c2305ae6cdc978f7e9be5387a67097068476e5aaaeef4a0f |
|
MD5 | 9d40bf2f9603c7bfc6dd7920f8f370cd |
|
BLAKE2b-256 | 2b0bc9ff3714b84c726b024accfda4c6ae07f857b51fccac693035ce8a729766 |