FlashProxy Logo

FlashProxy

ट्यूटोरियल्सगाइड्सप्रॉक्सीज़

Python में Amazon Price Tracker बनाएँ (सच्चा तरीका)

Python में Amazon Price Tracker बनाएँ (सच्चा तरीका)

Python और Selenium के साथ एक काम करने वाला price tracker बनाएँ, यह जानने के लिए कि असल में क्या आपको block करता है।

F
FlashProxy टीम
21 जून 2026
9 मिनट पढ़ना

मुख्य बातें

  • Product pages rarely scrapers को block करते हैं; testing में, 150 requests zero blocks के साथ गए।
  • Amazon search pages पहली request पर ही block करते हैं, भले ही proxy के साथ हो।
  • Block आपके IP address से ज़्यादा, एक real browser न होने के बारे में है।
  • एक country-targeted proxy blocks को avoid करने के लिए नहीं, correct local pricing के लिए ज़रूरी है।

मुझे लगा कि मुझे इंटरनेट पर सबसे सस्ता PlayStation 5 मिल गया है।

मेरे price tracker ने एक PS5 के बगल में $74.00 प्रिंट किया, लेकिन अगर ऑनलाइन कुछ बहुत अच्छा लगता है, तो यह लगभग हमेशा कुछ और होता है। वह $74 कंसोल नहीं था। scraper गलत element को grab कर रहा था, और यह बिल्कुल वैसी ही silent bug है जो ज़्यादातर "Amazon price tracker" tutorials को quietly बेकार बना देती है।

तो Python की पचास लाइनें publish करके और काम पूरा मान लेने के बजाय, जो लगभग हर guide करता है, मैंने इसे सही तरीके से test किया। मैंने इसे Amazon के खिलाफ बड़े पैमाने पर चलाया, बिल्कुल मापा कि क्या block होता है और क्या नहीं, और वे bugs ठीक किए जिनका tutorials कभी ज़िक्र नहीं करते। परिणाम genuinely surprising थे: एक bare scraper ने एक product page को 150 बार hit किया बिना एक भी block के, लेकिन एक search page पर पहली ही request पर shut down हो गया।

यह guide काम करने वाला tracker है plus वह सब कुछ जो testing से सामने आया, जिसमें एक Selenium trick भी है जो जानने लायक है, भले ही आपने पहले scrapers बनाए हों: यह एक real Chrome window को visually drive करता है, तो आप page को real time में load और scrape होते देखते हैं।

क्या Amazon वाकई आपको block करेगा?

हर tutorial आपको चेतावनी देता है कि Amazon आपके scraper को तुरंत block कर देगा। तो मैंने इसे test किया, और परिणाम ने मुझे genuinely confuse कर दिया।

मैंने एक bare, no-frills scraper को एक PlayStation 5 product page पर point किया और बस इसे hammer करने दिया। एक request, दो, दस, पचास — मैं दीवार का इंतज़ार करता रहा। वह कभी नहीं आई। scraper ने एक ही page पर 150 requests fire किए और हर एक "ok" वापस आया। मुझे विश्वास नहीं हुआ कि यह कितना open था।

था भी। Product pages को, जैसा कि पता चला, बहुत कम फर्क पड़ता है। फिर मैंने उसी scraper को एक search results page पर point किया, और यह पहली ही request पर मर गया। दसवें पर नहीं, पचासवें पर नहीं। पहले पर। तुरंत एक 503।

Search results वह जगह है जहाँ असली data-harvesting होती है, इसलिए वहीं Amazon अपनी defenses लगाता है। Individual product pages? बिल्कुल खुले।

यहाँ वह है जो मैंने try किया और क्या हुआ:

  • Product page, bare scraper: 150 requests, zero blocks

  • Search page, bare scraper: request #1 पर blocked (503)

  • Search page, better headers: फिर भी request #1 पर blocked

  • Search page, headers + residential proxy: फिर भी request #1 पर blocked

  • Search page, real browser: काम किया, 16 results

  • Search page, browser + US proxy: काम किया, 22 results

जिस बात ने मुझे सबसे ज़्यादा चौंकाया: search page पर residential proxy फेंकने से बिल्कुल मदद नहीं मिली। फिर भी blocked, पहली request पर। block कभी मेरे IP address के बारे में नहीं था — यह इस बारे में था कि मैं एक real browser नहीं था। जिस moment मैंने उसी search page को raw script की जगह actual browser में load किया, यह काम किया:


Tracker बनाना

चलिए इसे बनाते हैं। पूरा tracker लगभग 50 lines का Python है। आपको Python 3 और Google Chrome installed चाहिए, फिर libraries के लिए एक command:

pip install selenium requests matplotlib

इसे एक product की ओर point करना

हर Amazon product का एक ID होता है जिसे ASIN कहते हैं — URL में /dp/ के ठीक बाद का 10-character code। उदाहरण के लिए, amazon.com/dp/B0F1J12R6N में ASIN है B0F1J12R6N। tracker को किसी product को ढूँढने के लिए बस यही चाहिए।

requests क्यों काफ़ी नहीं है

किसी page को scrape करने का obvious तरीका है Python की requests library: एक line, HTML grab करो, done। और product page के लिए यह 200 OK भी return करता है। लेकिन यहाँ वह trap है जिसमें मैं गिरा: 200 का मतलब यह नहीं कि आपको data मिल गया। Amazon price को JavaScript से page में build करता है, और requests JavaScript नहीं चलाता। तो आपको page तो मिलता है, लेकिन उसमें price नहीं होता।

इसीलिए यह tracker Selenium use करता है। Selenium एक real Chrome browser drive करता है: यह वाकई page खोलता है, JavaScript चलाता है, और आपको fully rendered result पढ़ने देता है। पहली बार जब आप इसे चलाते हैं, Chrome अपने आप एक banner के साथ खुलता है जिस पर लिखा होता है "Chrome is being controlled by automated test software," और आप इसे real time में काम करते देखते हैं।

Price को scrape करना (और वह bug जो सब ship करते हैं)

यहीं पर ज़्यादातर tutorials quietly टूट जाते हैं। common approach .a-price element को grab करती है और उसका text पढ़ती है। समस्या यह है: Amazon उस element में price दो बार डालता है — एक बार visible, एक बार screen readers के लिए — तो आपको एक clean number की जगह garbled $449.00$449.00 मिलता है।

Fix यह है कि buy box के अंदर price की clean, single copy को target करें और उसे carefully पढ़ें, पहले main buy-box price check करते हुए ताकि आप accidentally किसी accessory का price न grab करें — यही वह तरीका है जिससे मैं उस "$74 PS5" तक पहुँचा था। exact selectors GitHub पर code में हैं।

एक बार सही element target हो जाने पर price clean आता है:

History store करना और chart बनाना

price tracker तभी उपयोगी है जब वह याद रखे। script हर reading को एक file में save करती है, product के अनुसार keyed, price को एक actual number के रूप में store करते हुए plus उसकी currency — न कि "$54.00" जैसी string। यह मायने रखता है: numbers को आप chart कर सकते हैं, compare कर सकते हैं, और सबसे कम ढूँढ सकते हैं; strings को नहीं। अकेला छोड़ने पर script एक बार check करके रुक जाती है; एक loop option add करें और यह schedule पर re-check करती है, समय के साथ history बनाती है जिसे एक छोटी दूसरी script price-over-time chart में बदल देती है।

वह bug जो मुझे लगभग महँगा पड़ गया: आप गलत country को scrape कर रहे हो सकते हैं

याद है वह $74 PlayStation? यह पहला संकेत था कि कुछ गड़बड़ है। दूसरा और भी बुरा था, क्योंकि उसे पकड़ना ज़्यादा मुश्किल था।

जब मैंने पहली बार tracker को बिना proxy के चलाया, Amazon ने मुझे सिर्फ odd prices नहीं दिए — कुछ products के लिए उसने कोई real price ही नहीं दी, बस एक "this item can't be shipped to your location" notice। tracker के पास record करने लायक कुछ उपयोगी नहीं था।

तो मैंने इसे proxy के ज़रिए route किया ताकि एक US shopper जैसा दिखूँ। price euros में वापस आया। पहले मैंने सोचा proxy काम ही नहीं किया। फिर मैंने notice किया कि page पर लिखा था "Deliver to Ireland," और बात समझ में आई: proxy बिल्कुल काम किया था, बस मुझे एक Irish IP पर drop कर दिया था। सही idea, गलत country।

Fix है एक residential proxy जो उस country पर pinned हो जिसकी आपको वाकई ज़रूरत है। जैसे ही मैंने अपना US के लिए lock किया, tracker ने हर बार सही price pull किया — $54.00, dollars में।

और यह country-pinning कोई nice-to-have नहीं है — यही पूरा मकसद है। मान लीजिए आप competitor prices track कर रहे हैं ताकि तय कर सकें कि किसी market में क्या charge करें। वे numbers तभी meaningful हैं जब वे वही prices हों जो उस market को वाकई दिखती हैं। एक ही product US में $449 हो सकता है और Ireland में €499। अगर आपका scraper चुपके से Irish price वापस करता है, तो आप एक market के लिए decisions दूसरे market के data के आधार पर ले रहे हैं — और क्योंकि यह valid दिखता है, कोई इसे पकड़ नहीं पाता।

तो यहाँ proxy blocks से बचने के बारे में नहीं है — मेरी testing ने दिखाया कि product pages barely block करती हैं। यह यह सुनिश्चित करने के बारे में है कि आप जो data collect करते हैं वह सही data हो।

अगर आप price data चाहते हैं जो किसी specific country के लिए pinned हो, तो FlashProxy के residential proxies आपको किसी भी location को target करने देते हैं, ताकि आप हमेशा वे prices collect करें जो उस market को वाकई दिखती हैं।

तो… क्या यह ज़्यादा मुश्किल होना चाहिए था?

यहाँ मेरी honest राय है: अगर आपको कभी किसी webpage से prices scrape करने की ज़रूरत पड़े, तो आपको सौ blogs नहीं पढ़ने हैं, YouTube videos का ढेर नहीं देखना है, या किसी AI को तब तक nagging नहीं करना है जब तक वह आखिरकार सही न हो जाए। आप बस खुद यह कर सकते हैं। यह बेहद आसान है, और honestly, यह कितना आसान है यह लगभग चिंताजनक है।

शुरू करने से पहले, मैंने मान लिया था कि यह मुश्किल होगा। बिना proxy के early tests चलाते हुए मैं genuinely nervous था — मुझे लग रहा था कि मैं हमेशा के लिए block हो जाऊँगा, या rate-limited हो जाऊँगा। मुझे consequences की उम्मीद थी।

कुछ नहीं हुआ। literally कुछ नहीं। एक product page पर 150 requests, no proxy, no blocks, no ban, कोई angry email नहीं। जिस दीवार के लिए मैं तैयार था वह ज़्यादातर थी ही नहीं, और जहाँ थी (search pages), एक real browser उसके सीधे पार निकल गया।

तो अगर सिर्फ यह assumption आपको इनमें से एक बनाने से रोक रही है कि यह hard या risky है: तो यह नहीं है। इसे build करो। बस इसे reasonable रखो, public prices track करो, site को hammer मत करो, और उनकी terms को respect करो। लेकिन डर? ज़्यादातर आपके दिमाग में है — जैसे मेरे में था।

पूरा code

पूरा project — tracker, proxy helper, charting, और test scripts — open source है: amazon-price-tracker-python on GitHub। इसे clone करो और चलाओ, या बिल्कुल पढ़ो कि यह कैसे काम करता है।

Pythonवेब स्क्रैपिंगAmazonमूल्य ट्रैकिंगप्रॉक्सीज़

अक्सर पूछे जाने वाले प्रश्न