Http/s Socks 4 Socks 5 Proxyscrape and checker
sqlprimitif
User
- Thread starter
- Thread Author
- #1
Python:
import requests
from colorama import init
import concurrent.futures
from tqdm import tqdm
import os # Importation pour changer le titre de la fenêtre CMD
init(autoreset=True)
proxy_sources = [
#no source here ^^
]
def fetch_proxies():
proxies = []
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
futures = {executor.submit(fetch_from_source, url): url for url in proxy_sources}
for future in tqdm(concurrent.futures.as_completed(futures), total=len(proxy_sources), desc="Loading proxies..."):
proxies += future.result()
return proxies
def fetch_from_source(url):
proxies = []
try:
response = requests.get(url, timeout=5)
if response.status_code == 200:
proxies += response.text.splitlines()
except:
pass
return proxies
def test_proxy(proxy, timeout):
url = 'http://httpbin.org/ip'
proxies = {
"http": f"http://{proxy}",
"https": f"http://{proxy}"
}
try:
response = requests.get(url, proxies=proxies, timeout=timeout)
if response.status_code == 200:
return True
except requests.RequestException:
return False
return False
def test_proxies(proxies, timeout, num_threads):
valid_proxies = []
with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor:
futures = {executor.submit(test_proxy, proxy, timeout): proxy for proxy in proxies}
for future in tqdm(concurrent.futures.as_completed(futures), total=len(proxies), desc="Testing proxies..."):
if future.result():
valid_proxies.append(future.result())
return valid_proxies
def main():
os.system('title @sqlprimitif') # Change the title of the CMD window to @sqlprimitif
timeout = float(input("Enter the timeout (in seconds) for testing proxies: "))
num_threads = int(input("Enter the number of threads for testing proxies: "))
proxies = fetch_proxies()
print(f"\nTotal number of proxies fetched: {len(proxies)}")
valid_proxies = test_proxies(proxies, timeout, num_threads)
with open('proxies.txt', 'w') as f:
for proxy in valid_proxies:
f.write(f"{proxy}\n")
print(f"Total number of valid proxies: {len(valid_proxies)}")
if __name__ == '__main__':
main()