Amazon प्राइस-मॉनिटरिंग और प्रोडक्ट-रिसर्च का सोने की खान है और वेब पर सबसे आक्रामक रूप से संरक्षित साइटों में से एक। इसे datacenter IP से स्क्रैप करें और आपको कुछ ही अनुरोधों के भीतर CAPTCHA, "Robot Check" दीवार, बदलती कीमतें, या 503 दिखेंगे। यह गाइड कवर करती है कि Amazon क्या जाँचता है, कौन सी proxy रणनीति इससे बची रहती है, और वह सेशन अनुशासन जो कीमतों और Buy Box डेटा को सटीक रखता है।
किसी भी असली वॉल्यूम पर Amazon पर datacenter proxy एक डेड एंड हैं — साफ़ ASN वाले residential exit ही इसे टिकाते हैं। उतना ही महत्वपूर्ण: exit देश को उस marketplace से मिलाएँ जिसे आप स्क्रैप कर रहे हैं। amazon.de की कीमतें US exit के माध्यम से खींचने से आपको US कीमतें, मुद्रा और Buy Box मिलते हैं, जो चुपचाप आपके डेटासेट को भ्रष्ट कर देता है। प्रति marketplace एक exit भूगोल।
Amazon सेशन के अनुसार वैयक्तिकृत करता है — add-to-cart, डिलीवरी स्थान, और प्राइस टेस्ट सभी cookie में रहते हैं। अगर आप हर अनुरोध पर IP रोटेट करते हैं, तो आप उस संदर्भ को लगातार रीसेट करते हैं और असंगत कीमतें और Buy Box विजेता पाते हैं। किसी प्रोडक्ट के पूरे स्क्रैप के लिए एक sticky session पकड़े रखें, फिर प्रोडक्ट या कार्य सीमा पर रोटेट करें:
import itertools, time, random
from curl_cffi import requests
PROXIES = ["socks5h://USERNAME:[email protected]:913", "..."]
pool = itertools.cycle(PROXIES)
def scrape_product(asin, proxy):
# Same sticky exit for every page of this product
s = requests.Session(impersonate="chrome",
proxies={"http": proxy, "https": proxy})
detail = s.get(f"https://www.amazon.com/dp/{asin}")
offers = s.get(f"https://www.amazon.com/gp/offer-listing/{asin}")
return detail.text, offers.text
for asin in asins:
proxy = next(pool) # new sticky exit per product
if "Robot Check" in scrape_product(asin, proxy)[0]:
# flagged - back off, rotate, retry on a fresh exit
...
time.sleep(random.uniform(2.0, 5.0))
जैसा कि Google SERP स्क्रैपिंग के साथ है, वह अनुशासन जो आपको ज़िंदा रखता है, प्रति-exit रेट है, पूल का आकार नहीं। अंतराल को यादृच्छिक बनाएँ, प्रति IP कॉनकरेंसी को सीमित करें, और जब आप "Robot Check" या 503 देखें, तो उस exit को हिट करना बंद करें और बैक ऑफ़ करें — किसी फ़्लैग की गई IP में फिर से कोशिश करना सिर्फ़ ब्लॉक को लंबा खींचता है।
एक सादा requests कॉल एक JA3 भेजता है जो IP स्कोर लागू होने से पहले ही आपको automation के रूप में चिह्नित कर देता है। curl_cffi (ऊपर) या एक असली ब्राउज़र के साथ एक ब्राउज़र फ़िंगरप्रिंट भेजें — देखें Bypass TLS Fingerprinting with curl_cffi। अगर Amazon एक JS CAPTCHA दीवार फेंकता है, तो एक असली ब्राउज़र इंजन तक बढ़ें।
नए यूज़र्स को साइन अप पर 500MB मिलते हैं, साथ ही पहली रिचार्ज पर बोनस। सीमित समय की पेशकश।