Kostenloser Test-Proxy

Installieren von Abhängigkeiten

Stellen Sie sicher, dass Sie Redis installiert haben und redis-py Bibliothek, um von Python aus mit Redis zu arbeiten. Installieren Sie die erforderlichen Abhängigkeiten mit pip:

pip install redis

Erstellen des Redis-Managers

Erstellen wir ein RedisManager Klasse zur Handhabung der Interaktionen mit Redis.

import redis
import json
import random
import logging

class RedisManager:
    def __init__(self, host='localhost', port=6379, db=0):
        self.db = redis.StrictRedis(host=host, port=port, db=db, decode_responses=True)
        self.logger = logging.getLogger('proxy_manager')
        self.logger.setLevel(logging.INFO)
        if not self.logger.hasHandlers():
            ch = logging.StreamHandler()
            ch.setLevel(logging.INFO)
            formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
            ch.setFormatter(formatter)
            self.logger.addHandler(ch)
        self.proxies = []
        self.load_proxy_list()

    def update_proxies(self, filepath):
        proxies = self.read_proxies_from_file(filepath)
        for proxy in proxies:
            if proxy.get('anonymitylevel') == 'elite' and proxy.get('protocol') in ['http', 'https']:
                if not self.proxy_exists(proxy):
                    self.logger.info(f"proxy: {proxy['ipaddress']} ({proxy['protocol']}, {proxy['anonymitylevel']})")
                    self.proxy_save(proxy)
        self.load_proxy_list()

    def get_proxy(self):
        return random.choice(self.proxies)

    def load_proxy_list(self):
        self.proxies = []
        ret = self.db.smembers("proxies")
        for pid in ret:
            proxy = self.load_proxy(pid)
            if proxy:
                self.proxies.append(proxy)

    def load_proxy(self, pid):
        data = self.db.hmget(f"proxy:{pid}", "ipaddress", "port", "protocol", "anonymitylevel", "source", "country")
        if not all(data):
            return None
        return {k: v for k, v in zip(["ipaddress", "port", "protocol", "anonymitylevel", "source", "country"], data)}

    def proxy_save(self, proxy):
        next_id = self.db.incr("proxies_next_id")
        self.db.hmset(f"proxy:{next_id}", proxy)
        self.db.sadd("proxies", next_id)
        self.db.hset("proxies_ids", proxy['ipaddress'], next_id)

    def proxy_exists(self, proxy):
        return self.db.hexists("proxies_ids", proxy['ipaddress'])

    def read_proxies_from_file(self, filepath):
        with open(filepath, 'r') as file:
            values = json.load(file)
        proxies = []
        for data in values:
            proxy = {
                "ipaddress": data.get("ipaddress", "").lower(),
                "port": str(data.get("port", "")),
                "protocol": data.get("protocols", [""])[0].lower(),
                "anonymitylevel": data.get("anonymitylevel", "").lower(),
                "source": data.get("source", "").lower(),
                "country": data.get("country", "").lower()
            }
            proxies.append(proxy)
        return proxies

Skript 1: Proxys in großen Mengen hinzufügen

Dieses Skript liest eine Liste von Proxys aus einer Datei und fügt sie der Redis-Datenbank hinzu.

import logging

logging.basicConfig(level=logging.INFO)

def main():
    manager = RedisManager()
    filepath = 'path/to/proxy_list.json'
    manager.update_proxies(filepath)
    logging.info("Proxies updated successfully")

if __name__ == "__main__":
    main()

Skript 2: Abrufen eines zufälligen Proxys

Dieses Skript ruft einen zufälligen Proxyserver aus der Redis-Datenbank ab.

import logging

logging.basicConfig(level=logging.INFO)

def main():
    manager = RedisManager()
    proxy = manager.get_proxy()
    logging.info(f"Random proxy: {proxy}")

if __name__ == "__main__":
    main()

Skript 3: Überprüfen der Proxy-Existenz

Dieses Skript prüft, ob in der Redis-Datenbank ein bestimmter Proxyserver vorhanden ist.

import logging

logging.basicConfig(level=logging.INFO)

def main():
    manager = RedisManager()
    test_proxy = {
        "ipaddress": "192.168.1.1",
        "port": "8080",
        "protocol": "http",
        "anonymitylevel": "elite",
        "source": "test_source",
        "country": "us"
    }
    exists = manager.proxy_exists(test_proxy)
    if exists:
        logging.info("Proxy exists in the database")
    else:
        logging.info("Proxy does not exist in the database")

if __name__ == "__main__":
    main()

Skript 4: Löschen eines Proxys

Dieses Skript löscht einen Proxy aus der Redis-Datenbank. Fügen Sie zunächst einen delete_proxy Methode zur RedisManager Klasse:

def delete_proxy(self, pid):
    self.db.delete(f"proxy:{pid}")
    self.db.srem("proxies", pid)

Nun das Skript zum Löschen eines Proxys:

import logging

logging.basicConfig(level=logging.INFO)

def main():
    manager = RedisManager()
    proxy_id = 1  # Replace with the ID of the proxy you want to delete
    manager.delete_proxy(proxy_id)
    logging.info("Proxy deleted successfully")

if __name__ == "__main__":
    main()

Abschluss

In diesem Handbuch haben wir mehrere Skripte zur Verwaltung von Proxys mit Python und Redis erstellt. Mit diesen Skripten können Sie Proxys zu einer Redis-Datenbank hinzufügen, abrufen, prüfen und löschen und so eine robuste Lösung für die Proxy-Verwaltung bereitstellen. Indem Sie auf diesen Beispielen aufbauen, können Sie Ihr Proxy-Verwaltungssystem weiter anpassen und erweitern, um es Ihren spezifischen Anforderungen anzupassen.

Kommentare (0)

Hier gibt es noch keine Kommentare, Sie können der Erste sein!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Proxy auswählen und kaufen

Rechenzentrums-Proxys

Rotierende Proxys

UDP-Proxys

Mehr als 10.000 Kunden weltweit vertrauen uns

Proxy-Kunde
Proxy-Kunde
Proxy-Kunde flowch.ai
Proxy-Kunde
Proxy-Kunde
Proxy-Kunde