वेब स्क्रैपिंग और बॉट · पाठ

मूल्य-निगरानी बॉट बनाना

ऐसा बॉट विकसित करें, जो ई-कॉमर्स साइटों पर उत्पादों की कीमतों पर नज़र रखे और कीमत घटने पर सूचनाएँ भेजे।

पाठ 1, कुल 4 में से11 चरण

मूल्य-निगरानी बॉट बनाना, CoddyKit पर वेब स्क्रैपिंग और बॉट का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह वेब स्क्रैपिंग और बॉट सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। वेब स्क्रैपिंग और बॉट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

प्राइस ट्रैकर बॉट क्या है?

क्या आप कभी यह जानना चाहते थे कि किसी उत्पाद की कीमत कब घटती है? प्राइस ट्रैकर बॉट ठीक यही काम करता है!

यह एक स्वचालित प्रोग्राम है जो ई-कॉमर्स वेबसाइटों पर आइटम की कीमत नियमित रूप से जाँचता है।

जब इसे कीमत में बदलाव, विशेष रूप से कमी, का पता चलता है, तो यह आपको सूचित कर सकता है।

बॉट के मुख्य कार्य

प्राइस ट्रैकर बनाने में कई महत्वपूर्ण चरण शामिल होते हैं:

  • प्राप्त करना: उत्पाद पेज की सामग्री प्राप्त करना।
  • पार्स करना: कीमत और उत्पाद का विवरण निकालना।
  • संग्रहीत करना: पिछली ज्ञात कीमत का रिकॉर्ड रखना।
  • तुलना करना: जाँचना कि वर्तमान कीमत कम है या नहीं।
  • सूचित करना: कीमत घटने पर अलर्ट भेजना।

उत्पाद का विवरण पहचानना

कोड लिखने से पहले हमें यह जानना होगा कि पेज पर जानकारी कहाँ है।

ब्राउज़र के डेवलपर टूल का उपयोग करके आप उन HTML एलिमेंट की पहचान करेंगे जिनमें उत्पाद की ये चीज़ें होती हैं:

  • नाम
  • वर्तमान कीमत
  • उत्पाद का URL

आपके बॉट के लिए सही डेटा ढूँढ़ने में ये बहुत महत्वपूर्ण हैं।

वेब पेज प्राप्त करना

पहला चरण वेब पेज की सामग्री डाउनलोड करना है। इसके लिए हम requests लाइब्रेरी का उपयोग करेंगे।

यह उत्पाद के URL पर एक एचटीटीपी GET अनुरोध भेजती है और HTML प्राप्त करती है।

इस सरल उदाहरण को चलाकर देखें:

import requests

def fetch_page(url):
    try:
        response = requests.get(url)
        response.raise_for_status() # Check for HTTP errors
        return response.text
    except requests.exceptions.RequestException as e:
        print(f"Error fetching page: {e}")
        return None

if __name__ == "__main__":
    # Example URL (replace with a real product page for testing)
    example_url = "https://example.com/product"
    print(f"Fetching content from: {example_url}")
    # In a real bot, you'd parse this content
    # page_content = fetch_page(example_url)
    # if page_content:
    #     print("Page content fetched successfully (first 200 chars):")
    #     print(page_content[:200])
    # else:
    #     print("Failed to fetch page content.")
    print("Page content fetching logic demonstrated.")

कीमत को पार्स करना

HTML प्राप्त होने के बाद, आप उसे पार्स करने और कीमत ढूँढ़ने के लिए BeautifulSoup जैसी लाइब्रेरी का उपयोग करेंगे।

कीमतों में अक्सर मुद्रा चिह्न या अतिरिक्त टेक्स्ट होता है, इसलिए संख्यात्मक मान प्राप्त करने के लिए हमें निकाली गई स्ट्रिंग को साफ़ करना होगा।

इसे समझाने वाला एक कोड अंश यहाँ दिया गया है:

from bs4 import BeautifulSoup

html_doc = """
<html><body>
  <span class="product-price">$199.99</span>
  <div id="item-name">Cool Gadget</div>
</body></html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
price_element = soup.find('span', class_='product-price')

if price_element:
    price_string = price_element.get_text()
    # Clean the string to get a float
    cleaned_price = float(price_string.replace('$', '').strip())
    print(f"Extracted Price: {cleaned_price}")
else:
    print("Price element not found.")

कीमत याद रखना

बदलावों का पता लगाने के लिए आपके बॉट को पिछली बार देखी गई कीमत याद रखनी होगी। इसका एक सरल तरीका इस डेटा को संग्रहीत करने के लिए फ़ाइल का उपयोग करना है।

एक सामान्य बॉट के लिए JSON फ़ाइल या मेमोरी में रखा गया साधारण डिक्शनरी काम कर सकता है।

आप उत्पाद का URL और उसकी पिछली ज्ञात कीमत संग्रहीत करेंगे।

import json

# Example of storing data
product_data = {
    "https://example.com/product1": {
        "name": "Cool Gadget",
        "last_price": 199.99
    },
    "https://example.com/product2": {
        "name": "Awesome Widget",
        "last_price": 49.95
    }
}

# In a real bot, you'd load/save this from a file
# with open('prices.json', 'w') as f:
#     json.dump(product_data, f, indent=2)

print("Product data structure for storage:")
print(json.dumps(product_data, indent=2))

कीमत में कमी का पता लगाना

यही मुख्य तर्क है! नई कीमत प्राप्त करने और पार्स करने के बाद, आप उसकी तुलना संग्रहीत "पिछली कीमत" से करते हैं।

यदि नई कीमत संग्रहीत कीमत से कम है, तो आपको एक अच्छा सौदा मिल गया है!

भविष्य में तुलना करने के लिए आपको संग्रहीत कीमत को नई कीमत से अपडेट भी करना चाहिए।

current_price = 189.99
stored_price = 199.99
product_name = "Cool Gadget"

if current_price < stored_price:
    print(f"PRICE DROP ALERT! {product_name} is now ${current_price} (was ${stored_price})")
    # Update stored_price = current_price in your data
elif current_price > stored_price:
    print(f"Price increased for {product_name}. Current: ${current_price}, Was: ${stored_price}")
    # Update stored_price = current_price
else:
    print(f"Price for {product_name} remains ${current_price}")

सौदों की सूचना देना

कीमत घटने का पता चलने के बाद आपके बॉट को आपको बताना होगा!

एक साधारण बॉट के लिए कंसोल में संदेश प्रिंट करना पर्याप्त है। वास्तविक उपयोग में आप ये काम कर सकते हैं:

  • ईमेल भेजना
  • अपने फ़ोन पर पुश सूचना भेजना
  • किसी चैट ऐप पर संदेश भेजना (जैसे, Discord या Telegram)
def send_notification(product_name, old_price, new_price):
    message = (
        f"🚨 Price Drop Alert! 🚨\n"
        f"Product: {product_name}\n"
        f"Old Price: ${old_price:.2f}\n"
        f"New Price: ${new_price:.2f}\n"
        f"Check it out now!"
    )
    print(message)
    # In a real app, you'd integrate email/SMS here

if __name__ == "__main__":
    send_notification("Awesome Headphones", 250.00, 225.00)

आपका पहला प्राइस ट्रैकर

आइए, इन सभी हिस्सों को मिलाकर एक सामान्य, चलने योग्य प्राइस ट्रैकर बनाएँ। यह उदाहरण डेटा प्राप्त करने और पार्स करने की प्रक्रिया का अनुकरण करता है।

याद रखें, वास्तविक बॉट में आप `mock_fetch_and_parse` को requests और BeautifulSoup के वास्तविक कॉल से बदलेंगे।

import json
import random

# Mock functions for demonstration
def mock_fetch_and_parse(product_url):
    # Simulate different prices
    if "gadget" in product_url:
        return random.choice([199.99, 189.99, 205.00])
    return random.choice([49.95, 45.00, 52.00])

def send_notification(product_name, old_price, new_price):
    print(f"🚨 Price Drop! {product_name} is now ${new_price:.2f} (was ${old_price:.2f})")

# Main logic
def check_price(product_url, product_name, stored_prices):
    current_price = mock_fetch_and_parse(product_url)
    last_price = stored_prices.get(product_url)

    if last_price is None:
        print(f"First check for {product_name}: ${current_price:.2f}")
    elif current_price < last_price:
        send_notification(product_name, last_price, current_price)
    elif current_price > last_price:
        print(f"Price for {product_name} increased to ${current_price:.2f}")
    else:
        print(f"Price for {product_name} remains ${current_price:.2f}")
    
    stored_prices[product_url] = current_price # Update price

if __name__ == "__main__":
    # Simulate stored prices (from a file in a real app)
    my_tracked_items = {
        "https://example.com/gadget": 200.00, # Initial price
        "https://example.com/widget": 50.00
    }

    print("--- First Run ---")
    check_price("https://example.com/gadget", "Cool Gadget", my_tracked_items)
    check_price("https://example.com/widget", "Awesome Widget", my_tracked_items)
    print("\n--- Second Run ---")
    check_price("https://example.com/gadget", "Cool Gadget", my_tracked_items)
    check_price("https://example.com/widget", "Awesome Widget", my_tracked_items)
    print("\nFinal tracked prices:", json.dumps(my_tracked_items, indent=2))

कीमत संबंधी तर्क की जाँच

एक प्राइस ट्रैकर बॉट पर विचार कीजिए। उसने किसी उत्पाद की कीमत पिछली बार $50.00 दर्ज की थी। अगली बार चलने पर उसे कीमत $45.00 मिलती है। बॉट को क्या करना चाहिए?

पुनरावलोकन और अगले चरण

आपने प्राइस ट्रैकर बॉट बनाने के मूल चरण सीख लिए हैं!

  • requests से HTML प्राप्त करें।
  • BeautifulSoup से कीमतों को पार्स करें।
  • कीमतें संग्रहीत करें (जैसे, JSON फ़ाइल में)।
  • वर्तमान और संग्रहीत कीमतों की तुलना करें।
  • कीमत घटने पर सूचित करें।

अगले चरणों में अपने बॉट को स्वचालित रूप से चलाने के लिए शेड्यूल करना और सूचना भेजने के अधिक उन्नत तरीकों को जानना शामिल है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

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

क्या “मूल्य-निगरानी बॉट बनाना” पाठ निःशुल्क है?

हाँ — वेब स्क्रैपिंग और बॉट अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “मूल्य-निगरानी बॉट बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। वेब स्क्रैपिंग और बॉट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“मूल्य-निगरानी बॉट बनाना” में मैं क्या सीखूँगा?

ऐसा बॉट विकसित करें, जो ई-कॉमर्स साइटों पर उत्पादों की कीमतों पर नज़र रखे और कीमत घटने पर सूचनाएँ भेजे। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ वेब स्क्रैपिंग और बॉट का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या वेब स्क्रैपिंग और बॉट शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर वेब स्क्रैपिंग और बॉट शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“मूल्य-निगरानी बॉट बनाना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस वेब स्क्रैपिंग और बॉट पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर वेब स्क्रैपिंग और बॉट पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. मूल्य-निगरानी बॉट बनाना
  2. सोशल मीडिया निगरानी बनाना
  3. बॉट को क्लाउड मंचों पर परिनियोजित करना
  4. अलर्ट और सूचनाएँ भेजना
← वेब स्क्रैपिंग और बॉट पर वापस जाएँ