انحصار انسٹال کرنا

یقینی بنائیں کہ آپ نے Redis انسٹال کیا ہے اور redis-py Python سے Redis کے ساتھ کام کرنے کے لیے لائبریری۔ پائپ کا استعمال کرتے ہوئے ضروری انحصار انسٹال کریں:

pip install redis

ریڈیس مینیجر بنانا

آئیے ایک بنائیں RedisManager 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

اسکرپٹ 1: بڑی تعداد میں پراکسی شامل کرنا

یہ اسکرپٹ فائل سے پراکسیوں کی فہرست پڑھتا ہے اور انہیں Redis ڈیٹا بیس میں شامل کرتا ہے۔

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()

اسکرپٹ 2: رینڈم پراکسی کو بازیافت کرنا

یہ اسکرپٹ Redis ڈیٹا بیس سے ایک بے ترتیب پراکسی سرور بازیافت کرتا ہے۔

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()

اسکرپٹ 3: پراکسی وجود کی جانچ کرنا

یہ اسکرپٹ چیک کرتا ہے کہ آیا Redis ڈیٹا بیس میں کوئی مخصوص پراکسی سرور موجود ہے۔

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()

اسکرپٹ 4: پراکسی کو حذف کرنا

یہ اسکرپٹ Redis ڈیٹا بیس سے ایک پراکسی کو حذف کر دیتا ہے۔ سب سے پہلے، ایک شامل کریں delete_proxy طریقہ کار RedisManager کلاس:

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

اب، پراکسی کو حذف کرنے کا اسکرپٹ:

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()

نتیجہ

اس گائیڈ میں، ہم نے Python اور Redis کا استعمال کرتے ہوئے پراکسیوں کے انتظام کے لیے کئی اسکرپٹس بنائے ہیں۔ یہ اسکرپٹ آپ کو Redis ڈیٹا بیس سے پراکسی شامل کرنے، بازیافت کرنے، چیک کرنے اور حذف کرنے کی اجازت دیتی ہیں، جو پراکسی مینجمنٹ کے لیے ایک مضبوط حل فراہم کرتی ہیں۔ ان مثالوں کو بنا کر، آپ اپنی مخصوص ضروریات کے مطابق اپنے پراکسی مینجمنٹ سسٹم کو مزید تخصیص اور بڑھا سکتے ہیں۔

تبصرے (0)

یہاں ابھی تک کوئی تبصرہ نہیں ہے، آپ پہلے ہو سکتے ہیں!

جواب دیں

آپ کا ای میل ایڈریس شائع نہیں کیا جائے گا۔ ضروری خانوں کو * سے نشان زد کیا گیا ہے


پراکسی کا انتخاب کریں اور خریدیں۔

ڈیٹا سینٹر پراکسی

گھومنے والی پراکسی

UDP پراکسی

دنیا بھر میں 10000+ صارفین کے ذریعے قابل اعتماد

پراکسی کسٹمر
پراکسی کسٹمر
پراکسی کسٹمر flowch.ai
پراکسی کسٹمر
پراکسی کسٹمر
پراکسی کسٹمر