• 28-03-2025, 22:09:12
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar bir api üzerinden online işeri takip edip kabul ediyorum , ama yavaş kalıyorum proxy ekleyip bunu hızlandırmak istiyorum yardımcı olabilecekler wp: 05050303985
    kod aşağıdaki gibidir..
    import time
    import json
    import certifi
    import cloudscraper
    import sys
    
    
    BOOKING_URL = "Api1"
    ACCEPT_URL = "Api2"
    
    
    LOGIN_HASH = "TOKEN1"
    ACCEPT_LOGIN_HASH = "tOKEN2"
    
    
    VEHICLE_ID = "36980"
    
    
    scraper = cloudscraper.create_scraper()
    
    
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer TOKEN",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
    }
    
    
    previous_hashes = set()
    
    
    MAX_RETRIES = 5
    RETRY_DELAY = 2
    
    
    success_count = 0
    
    def send_booking_request():
    
        global success_count
    
        while True:
            time.sleep(0.5)  # 200ms bekle
    
            for attempt in range(MAX_RETRIES):
                try:
                    payload = {"login_hash": LOGIN_HASH}
                    response = scraper.post(BOOKING_URL, headers=headers, json=payload, verify=certifi.where())
    
                    if response.status_code == 200:
                        success_count += 1
                        sys.stdout.write(f"\r Başarılı istek sayısı: ({success_count})")
                        sys.stdout.flush()
                        check_new_bookings(response)
                        break  
                    else:
                        print(f"\nHata: {response.status_code} - {response.text}")
                        time.sleep(RETRY_DELAY * (2 ** attempt))  # Exponential backoff
                except Exception as e:
                    print(f"\n⚠Bağlantı hatası: {e}, tekrar deneniyor...")
                    time.sleep(RETRY_DELAY * (2 ** attempt))  # Exponential backoff
            else:
                print("\n Maksimum deneme sayısına ulaşıldı! Tekrar deneniyor...")
                continue
    
    def check_new_bookings(response):
        
        try:
            current_data = response.json().get("data", {}).get("bookings", [])
        except json.JSONDecodeError as e:
            print(f"\nJSON dönüşüm hatası: {e}. Yanıt içeriği: {response.text}")
            return
    
        for booking in current_data:
            booking_hash = booking["booking_hash_link"]
    
            if booking_hash not in previous_hashes:
                print(f"\n🚀 **Yeni Rezervasyon Algılandı!** {booking_hash}")
    
                accept_payload = {
                    "login_hash": ACCEPT_LOGIN_HASH,
                    "booking_hash": booking_hash,
                    "vehicle_id": VEHICLE_ID,
                    "refuse": "accept"
                }
    
                for attempt in range(MAX_RETRIES):
                    try:
                        accept_response = scraper.post(ACCEPT_URL, headers=headers, json=accept_payload, verify=certifi.where())
    
                        if accept_response.status_code == 200:
                            print(f"\nRezervasyon kabul edildi! {booking_hash}")
                            previous_hashes.add(booking_hash)
                            break
                        else:
                            print(f"\n Rezervasyon kabul hatası: {accept_response.status_code} - {accept_response.text}")
                            time.sleep(RETRY_DELAY * (2 ** attempt))  # Exponential backoff
                    except Exception as e:
                        print(f"\n Bağlantı hatası (Rezervasyon kabulü): {e}, tekrar deneniyor...")
                        time.sleep(RETRY_DELAY * (2 ** attempt))  # Exponential backoff
                else:
                    print(f"\n Maksimum deneme sayısına ulaşıldı! {booking_hash} rezervasyonu atlandı.")
    
    
    send_booking_request()
  • 28-03-2025, 22:19:53
    #2
    dostum kodun çalışıyorsa bunun için multithreading'i araştır. ücret ödemeden kendin yapabilirsin. yapamazsan yaz bana çözeriz.
  • 28-03-2025, 22:21:59
    #3
    Üyeliği durduruldu
    @cgrmetin evet hocam rate limite düşüyor denedim
  • 28-03-2025, 22:27:06
    #4
    import time
    import json
    import certifi
    import cloudscraper
    import sys
    import random
    
    BOOKING_URL = "Api1"
    ACCEPT_URL = "Api2"
    
    LOGIN_HASH = "TOKEN1"
    ACCEPT_LOGIN_HASH = "tOKEN2"
    
    VEHICLE_ID = "36980"
    
    proxies = [
        "http://proxy1.example.com:8080",
        "http://proxy2.example.com:8080",
        "http://proxy3.example.com:8080"
    ]
    
    def create_scraper_with_proxy():
        proxy = random.choice(proxies)
        return cloudscraper.create_scraper(
            requesters=['requests'],
            proxies={'http': proxy, 'https': proxy}
        )
    
    scraper = create_scraper_with_proxy()
    
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer TOKEN",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
    }
    
    previous_hashes = set()
    
    MAX_RETRIES = 5
    RETRY_DELAY = 2
    
    success_count = 0
    
    def send_booking_request():
        global success_count
        global scraper
    
        while True:
            time.sleep(0.5)
    
            for attempt in range(MAX_RETRIES):
                try:
                    payload = {"login_hash": LOGIN_HASH}
                    response = scraper.post(BOOKING_URL, headers=headers, json=payload, verify=certifi.where())
    
                    if response.status_code == 200:
                        success_count += 1
                        sys.stdout.write(f"\r Başarılı istek sayısı: ({success_count})")
                        sys.stdout.flush()
                        check_new_bookings(response)
                        break 
                    else:
                        print(f"\nHata: {response.status_code} - {response.text}")
                        scraper = create_scraper_with_proxy()
                        time.sleep(RETRY_DELAY * (2 ** attempt))
                except Exception as e:
                    print(f"\n⚠Bağlantı hatası: {e}, tekrar deneniyor...")
                    scraper = create_scraper_with_proxy()
                    time.sleep(RETRY_DELAY * (2 ** attempt))
            else:
                print("\n Maksimum deneme sayısına ulaşıldı! Tekrar deneniyor...")
                continue
    
    def check_new_bookings(response):
        try:
            current_data = response.json().get("data", {}).get("bookings", [])
        except json.JSONDecodeError as e:
            print(f"\nJSON dönüşüm hatası: {e}. Yanıt içeriği: {response.text}")
            return
    
        for booking in current_data:
            booking_hash = booking["booking_hash_link"]
    
            if booking_hash not in previous_hashes:
                print(f"\n<img draggable="false" class="emoji" alt="🚀" src="//cdn.r10.net/emojis/html/1f680.png"> **Yeni Rezervasyon Algılandı!** {booking_hash}")
    
                accept_payload = {
                    "login_hash": ACCEPT_LOGIN_HASH,
                    "booking_hash": booking_hash,
                    "vehicle_id": VEHICLE_ID,
                    "refuse": "accept"
                }
    
                for attempt in range(MAX_RETRIES):
                    try:
                        accept_response = scraper.post(ACCEPT_URL, headers=headers, json=accept_payload, verify=certifi.where())
    
                        if accept_response.status_code == 200:
                            print(f"\nRezervasyon kabul edildi! {booking_hash}")
                            previous_hashes.add(booking_hash)
                            break
                        else:
                            print(f"\n Rezervasyon kabul hatası: {accept_response.status_code} - {accept_response.text}")
                            scraper = create_scraper_with_proxy()
                            time.sleep(RETRY_DELAY * (2 ** attempt))
                    except Exception as e:
                        print(f"\n Bağlantı hatası (Rezervasyon kabulü): {e}, tekrar deneniyor...")
                        scraper = create_scraper_with_proxy()
                        time.sleep(RETRY_DELAY * (2 ** attempt))
                else:
                    print(f"\n Maksimum deneme sayısına ulaşıldı! {booking_hash} rezervasyonu atlandı.")
    
    send_booking_request()