import sys
import subprocess
import time
import os
from datetime import datetime
# SSL-Zertifikat setzen
os.environ['SSL_CERT_FILE'] = os.path.join(os.path.dirname(__file__), 'cacert.pem')
def install_package(pkg):
print(f"[+] Installiere fehlendes Paket: {pkg} ...")
subprocess.check_call([sys.executable, "-m", "pip", "install", pkg])
try:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
except ImportError:
install_package("selenium")
install_package("webdriver-manager")
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
def parse_proxies_from_driver(driver):
proxies = []
try:
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "/html/body/div[1]/div[4]/div/div[4]/table/tbody/tr"))
)
except:
print("[!] Tabelle nicht gefunden oder Timeout.")
return []
rows = driver.find_elements(By.XPATH, "/html/body/div[1]/div[4]/div/div[4]/table/tbody/tr")
for row in rows:
try:
ip = row.find_element(By.XPATH, "./td[1]").text.strip()
port = row.find_element(By.XPATH, "./td[2]").text.strip()
proxies.append(f"{ip}:{port}")
except Exception:
continue
return proxies
def main():
options = webdriver.ChromeOptions()
# options.add_argument("--headless") # Sichtbar lassen für Debugging
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--log-level=3") # Unterdrückt Chrome-Meldungen
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=options)
proxies_all = []
base_url = "https://hidexn.name/proxy-list/"
offsets = [0, 64, 128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1024]
try:
for offset in offsets:
url = base_url if offset == 0 else f"{base_url}?start={offset}#list"
print(f"[+] Lade Seite: {url}")
driver.get(url)
proxies = parse_proxies_from_driver(driver)
print(f" Gefundene Proxies auf Seite {offset // 64 + 1}: {len(proxies)}")
if not proxies:
print("[!] Keine Proxies gefunden, nehme Ende der Liste an.")
break
proxies_all.extend(proxies)
time.sleep(2)
if proxies_all:
datum = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
filename = f"proxies_{datum}.txt"
with open(filename, "w", encoding="utf-8") as f:
for proxy in proxies_all:
f.write(proxy + "\n")
print(f"[+] Insgesamt {len(proxies_all)} Proxies in {filename} gespeichert.")
else:
print("[!] Keine Proxies insgesamt gefunden.")
finally:
driver.quit()
if __name__ == "__main__":
main()