त्रुटि सुधार · 2 मिनट पढ़ें

स्क्रैपिंग करते समय 429 बहुत अधिक अनुरोधों को कैसे ठीक करें

एक 429 एक दर सीमा है, प्रतिबंध नहीं - सर्वर आपसे धीमा होने के लिए कह रहा है। स्थायी समाधान में बैकऑफ, Retry-After का सम्मान करना, और IPs के पूल में लोड फैलाना शामिल है। यहाँ यह है, कार्यशील Python के साथ।

429 एक गति सीमा है, दीवार नहीं

HTTP 429 बहुत अधिक अनुरोध का अर्थ है कि आपने एक निश्चित समय में बहुत अधिक अनुरोध भेजे हैं और सर्वर आपको सीमित कर रहा है। यह जानबूझकर अस्थायी है - एक कठोर ब्लॉक के विपरीत, 429 आमतौर पर तब साफ हो जाता है जब आप धीमा हो जाते हैं। कई सर्वर में एक Retry-After हेडर होता है जो आपको बताता है कि कितने सेकंड तक इंतजार करना है; इसका सम्मान करना सबसे प्रभावी समाधान है, क्योंकि यह आपको सर्वर की अपनी सीमा के साथ संरेखित करता है बजाय इसके कि आप अनुमान लगाएं।

दो लीवर हैं। पहला है दर: प्रति सेकंड प्रति IP कम अनुरोध भेजें, देरी जोड़ें, समवर्तीता को सीमित करें, और जब 429 दिखाई दे तो तेजी से पीछे हटें। दूसरा है वितरण: अनुरोधों को कई IPs में फैलाएं ताकि प्रत्येक प्रति-IP सीमा के तहत रहे। दर नियंत्रण वह जगह है जहां आपको शुरू करना चाहिए - एक प्रॉक्सी पूल आपके थ्रूपुट को गुणा करता है लेकिन किसी साइट पर हमला करने का बहाना नहीं बनाता। s4m प्रमाणित डेटासेंटर प्रॉक्सीज (SOCKS5 1080, HTTP 3128, USER:PASS) प्रदान करता है ताकि लोड फैल सके, और यह सीधे प्रॉक्सी रोटेशन गाइड और अनुरोधों के साथ स्क्रैपिंग के साथ जुड़ता है।

Retry-After का सम्मान करें, पीछे हटें, फिर घुमाएं

एक फेच लूप जो Retry-After का सम्मान करता है, जिटर के साथ गुणात्मक रूप से पीछे हटता है, और प्रॉक्सी पूल में फैलता है। USER:PASS को बदलें।

python
import random, time
import requests

USER, PASS, HOST = "USER", "PASS", "proxy.s4m.online"
POOL = [
    f"socks5h://{USER}:{PASS}@{HOST}:1080",
    f"http://{USER}:{PASS}@{HOST}:3128",
]

def polite_get(url, max_tries=6):
    for attempt in range(1, max_tries + 1):
        proxy = random.choice(POOL)
        r = requests.get(url, proxies={"http": proxy, "https": proxy},
                         timeout=(5, 20))
        if r.status_code != 429:
            r.raise_for_status()
            return r

        # 429: prefer the server's Retry-After, else exponential backoff
        retry_after = r.headers.get("Retry-After")
        if retry_after and retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(2 ** attempt, 60) + random.random()  # cap + jitter

        print(f"[{attempt}/{max_tries}] 429; waiting {wait:.1f}s")
        time.sleep(wait)

    raise SystemExit(f"still rate-limited after {max_tries} tries")

# Global throttle: cap how fast you fire, independent of retries.
MIN_INTERVAL = 0.5  # seconds between requests per worker
_last = 0.0
def throttled_get(url):
    global _last
    delta = time.time() - _last
    if delta < MIN_INTERVAL:
        time.sleep(MIN_INTERVAL - delta)
    _last = time.time()
    return polite_get(url)

print(throttled_get("https://httpbin.org/status/200").status_code)

429 को ठीक करने का आदेश

सस्ते, सबसे सम्मानजनक समाधान पहले।

Retry-After का सम्मान करें

यदि 429 प्रतिक्रिया में Retry-After हेडर शामिल है, तो पुनः प्रयास करने से पहले ठीक उसी समय तक प्रतीक्षा करें। यह सर्वर आपको इसकी सीमा बता रहा है - इसका पालन करने से अधिकांश 429 तुरंत साफ हो जाते हैं।

जिटर के साथ एक्सपोनेंशियल बैकऑफ जोड़ें

जब Retry-After नहीं होता है, तो 2, 4, 8… सेकंड (सीमित) के लिए प्रतीक्षा करें, इसके बाद पुनः प्रयासों के बीच एक छोटा यादृच्छिक जिटर जोड़ें, ताकि आप लगातार प्रयास न करें और समन्वित पुनः प्रयासों से बचें।

अपने अनुरोध दर को सीमित करें

प्रति सेकंड कैप अनुरोध और समवर्तीता ताकि आप पहले स्थान पर सीमा के तहत रहें। एक स्थिर, धीमी क्रॉल एक विस्फोट की तुलना में अधिक विश्वसनीयता से समाप्त होती है जो लगातार थ्रॉटल होती है।

IP पर लोड फैलाएं

एक बार जब आपका प्रति-अनुरोध व्यवहार विनम्र हो जाता है, तो प्रॉक्सी पूल के माध्यम से घुमाएं ताकि प्रत्येक IP प्रति-IP सीमा के तहत रहे। यह किसी भी एकल पते पर दर बढ़ाए बिना सुरक्षित थ्रूपुट को गुणा करता है।

क्यों केवल रोटेशन उत्तर नहीं है

प्रॉक्सी को दर सीमाओं को अनदेखा करने के तरीके के रूप में मान लेना आकर्षक है — बस अधिक आईपी जोड़ें और फायरिंग करते रहें। यह उलटा पड़ता है। एक साइट जो 429 लौटाती है, अनुरोध पैटर्न पर नज़र रख रही है, और एक ही समय में समान अंत बिंदुओं पर हिट करने वाले बदलते पते से आने वाली बाढ़ एक पहचान योग्य हस्ताक्षर है जो कठोर प्रतिबंधों की ओर ले जाती है। रोटेशन गुणा करता है विनम्र थ्रूपुट; यह विनम्रता को बदलता नहीं है। हमेशा एक प्रॉक्सी पूल को बैकऑफ, Retry-After, वास्तविक गति, और समझदारी से समवर्तीता के साथ मिलाएं।

ईमानदारी से, कुछ सीमाओं का सम्मान किया जाना चाहिए — 429 के चारों ओर स्केल करने से पहले यह जांचें कि क्या कोई आधिकारिक API या प्रलेखित दर मौजूद है, और प्रत्येक साइट की शर्तें पढ़ें। जब आपको वितरण की आवश्यकता हो, तो s4m के प्रमाणित डेटासेंटर प्रॉक्सी लोड फैलाते हैं और मीटर किए जाते हैं, इसलिए पूल को चौड़ा करना सस्ता है; यांत्रिकी के लिए रोटेशन गाइड देखें। याद रखें कि डेटासेंटर आईपी अभी भी थोक में झंडा लग सकते हैं, और रोटेशन फिंगरप्रिंट के बारे में कुछ नहीं करता है। फ्री प्रॉक्सी सूची के साथ सस्ते में प्रोटोटाइप करें और उपकरणों के साथ निकासों को मान्य करें।

FAQ

प्रश्न, उत्तरित

क्या 429 एक स्थायी प्रतिबंध है?

नहीं। HTTP 429 बहुत अधिक अनुरोध एक अस्थायी दर सीमा है — यह आमतौर पर तब साफ हो जाती है जब आप धीमा हो जाते हैं। किसी भी Retry-After हेडर का सम्मान करें, बैकऑफ जोड़ें, और अपने अनुरोध की दर को कम करें, और पहुंच आमतौर पर फिर से शुरू होती है।

429 के लिए सबसे प्रभावी समाधान क्या है?

जब सर्वर एक भेजता है तो Retry-After हेडर का सम्मान करना। यह आपको बताता है कि कितनी देर तक इंतजार करना है, ताकि आप सर्वर की सीमा के साथ फिर से संरेखित हो सकें बजाय इसके कि आप अनुमान लगाएं और फिर से थ्रॉटल हो जाएं।

क्या घुमाने वाले प्रॉक्सी 429 त्रुटियों को रोक देंगे?

यह प्रत्येक IP को प्रति-IP सीमा के तहत रखने में मदद करता है, लेकिन केवल बैकऑफ और थ्रॉटलिंग के साथ। विनम्र गति के बिना रोटेशन एक पता लगाने योग्य बाढ़ उत्पन्न करता है जो कठिन ब्लॉकों की ओर बढ़ता है, इसलिए दोनों को मिलाएं।

क्या s4m प्रॉक्सियों का उपयोग किसी भी दर सीमा को बायपास करने के लिए पर्याप्त है?

कोई ईमानदार उपकरण ऐसा वादा नहीं कर सकता। s4m डेटा सेंटर प्रॉक्सी आईपी के बीच लोड फैलाते हैं, लेकिन आपको अभी भी बैकऑफ और थ्रॉटलिंग की आवश्यकता है, डेटा सेंटर रेंज को झंडा लगाया जा सकता है, और कुछ सीमाओं का सम्मान करना चाहिए जो एक आधिकारिक API के माध्यम से हैं।

ईमानदारी से लोड फैलाएं

प्रॉक्सी.s4m.online पर प्रमाणित डेटा सेंटर प्रॉक्सियों के साथ बैकऑफ और थ्रॉटलिंग को मिलाएं ताकि प्रत्येक आईपी सीमा के तहत रहे। मीटर किए गए पे-एज़-यू-गो, समर्पित आईपी वैकल्पिक।

लोगों ने इस पृष्ठ को खोजकर पाया

  • स्क्रैपिंग करते समय 429 बहुत अधिक अनुरोधों को कैसे ठीक करें
  • आवासीय प्रॉक्सी
  • ताजा मुफ्त प्रॉक्सी सूची
  • मुफ्त प्रॉक्सी सूची
  • openvpn कैसे काम करता है
  • कैसे जांचें http प्रॉक्सी
  • वायरगार्ड को कैसे कॉन्फ़िगर करें
  • स्क्रैपिंग के लिए प्रॉक्सी व्यवसाय के लिए
  • socks5 प्रॉक्सी चरण दर चरण
  • Tinyproxy बनाम 3proxy बनाम Squid
  • क्या प्रॉक्सी प्रमाणीकरण सुरक्षित है
  • आईपी पता सेटिंग्स
  • SOCKS5 पर UDP
  • क्या openvpn सुरक्षित है
  • openvpn
  • DPI को बायपास करना
  • http प्रॉक्सी
  • आईपी पता

वास्तविक खोज वाक्यांश जिनका यह पृष्ठ उत्तर देता है — लिंक किए गए वाक्यांश उस पृष्ठ को खोलते हैं जो उन्हें गहराई से कवर करता है।