AD

Python aur BeautifulSoup se Web Scraping: College Notices ke liye Automatic Alert Script Banayein

Python aur BeautifulSoup se Web Scraping: College Notices ke liye Automatic Alert Script Banayein

कोडिंग स्टूडेंट्स के लिए प्रैक्टिकल प्रोजेक्ट: ऑटोमेटेड वेब स्क्रैपिंग

कॉलेज में पढ़ते समय हर स्टूडेंट को रोजाना अलग-अलग पोर्टल्स या कॉलेज की ऑफिशियल वेबसाइट पर जाकर नई परीक्षा तिथियों, टाइमटेबल और असाइनमेंट अपडेट्स को चेक करना पड़ता है। कई बार जरूरी नोटिस सही समय पर न देखने के कारण फॉर्म भरने की डेडलाइन छूट जाती है। एक कोडिंग स्टूडेंट के रूप में, क्या आप इस नीरस और समय लेने वाले काम को ऑटोमेट कर सकते हैं?

इसका जवाब है - हाँ! वेब स्क्रैपिंग (Web Scraping) एक ऐसी तकनीक है जिसकी मदद से आप किसी भी वेबसाइट के डेटा को प्रोग्रामैटिकली एक्सट्रैक्ट कर सकते हैं। इस आर्टिकल में हम Python की Requests और BeautifulSoup लाइब्रेरी का इस्तेमाल करके एक ऐसा स्क्रैपर टूल बनाएंगे जो कॉलेज नोटिस बोर्ड को ऑटोमैटिकली चेक करेगा और नया नोटिस आते ही आपके फोन पर नोटिफिकेशन भेज देगा।

वेब स्क्रैपिंग के लिए जरूरी टूल्स और सेटअप

इस प्रोजेक्ट को पूरा करने के लिए आपको बहुत जटिल सेटअप की आवश्यकता नहीं है। अपने सिस्टम में Python इंस्टाल करने के बाद आपको केवल कुछ बेसिक लाइब्रेरीज़ की ज़रूरत होगी:

  • Python 3.x: आपकी मुख्य प्रोग्रामिंग भाषा।
  • Requests Library: वेबसाइट को HTTP रिक्वेस्ट भेजने और वेबपेज का HTML कंटेंट डाउनलोड करने के लिए।
  • BeautifulSoup4: HTML कोड को आसानी से पार्स (Parse) करने और उसमें से डेटा (जैसे टैटल्स, लिंक्स, डेट्स) ढूंढने के लिए।
  • Telegram Bot API (Optional): नए नोटिस का मैसेज आपके फोन पर भेजने के लिए।

Terminal या Command Prompt में निम्नलिखित कमांड चलाकर आप इन लाइब्रेरीज़ को इंस्टाल कर सकते हैं:

pip install requests beautifulsoup4 python-telegram-bot

प्रोजेक्ट का आर्किटेक्चर और वर्किंग फ्लो

किसी भी ऑटोमेशन टूल को बनाने से पहले उसका लॉजिक समझना बेहद जरूरी है। हमारी स्क्रिप्ट नीचे दिए गए 4 आसान स्टेप्स में काम करेगी:

1. Webpage Inspection (ब्राउजर देवटूल्स)

वेबसाइट के उस हिस्से की पहचान करना जहाँ नोटिस पोस्ट होते हैं। Google Chrome में नोटिस टेक्स्ट पर राइट-क्लिक करके Inspect Element से उसके HTML टैग्स (जैसे <div>, <ul>, <a>) और CSS क्लासेस को देखना।

2. Fetching Content (Requests Module)

Python स्क्रिप्ट कॉलेज के नोटिस बोर्ड वाले URL पर GET रिक्वेस्ट भेजेगी और पूरे वेबपेज का HTML रिस्पॉन्स प्राप्त करेगी।

3. Parsing and Extraction (BeautifulSoup)

BeautifulSoup HTML स्ट्रक्चर को एक ट्री फॉर्म में बदल देगा। इसके बाद हम CSS सेलेक्टर्स की मदद से केवल लेटेस्ट नोटिस के टाइटल और डाउनलोड लिंक्स को फिल्टर कर लेंगे।

4. Storage & Alerting

स्क्रिप्ट निकाले गए नोटिस को एक लोकल फाइल में सेव करेगी। जब भी नया नोटिस दिखेगा, वह आपको Telegram अलर्ट भेजेगी और फाइल को अपडेट कर देगी।

स्टेप-बाय-स्टेप कोडिंग और इंप्लीमेंटेशन गाइड

स्टेप 1: HTML कंटेंट डाउनलोड करना

सबसे पहले हम target URL पर HTTP रिक्वेस्ट भेजकर HTML पेज रिट्रीव करते हैं। यहाँ ध्यान रखें कि कई वेबसाइट्स बोट्स को ब्लॉक करती हैं, इसलिए हमें एक कस्टम User-Agent हेडर जोड़ना चाहिए:

import requests
from bs4 import BeautifulSoup

url = "https://example-college.edu/notices"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}

response = requests.get(url, headers=headers)
if response.status_status == 200:
    print("Page fetched successfully!")

स्टेप 2: BeautifulSoup से डेटा एक्सट्रैक्ट करना

मान लीजिए कि वेबसाइट पर सभी नोटिस <div class="notice-item"> के अंदर <a> टैग में मौजूद हैं। अब हम इन्हें एक्सट्रैक्ट करेंगे:

soup = BeautifulSoup(response.text, 'html.parser')
notices = soup.find_all('div', class_='notice-item')

latest_notices = []
for notice in notices[:5]: # शीर्ष 5 नोटिस
    title = notice.find('a').text.strip()
    link = notice.find('a')['href']
    latest_notices.append({'title': title, 'link': link})

print(latest_notices)

स्टेप 3: Telegram Bot से ऑटोमैटिक नोटिफिकेशन पाना

अपने फोन पर तुरंत अपडेट पाने के लिए Telegram पर @BotFather के जरिए 2 मिनट में एक नया बोट बनाएं और उसका API Token प्राप्त करें। फिर इस फंक्शन का उपयोग करें:

def send_telegram_alert(message):
    bot_token = 'YOUR_BOT_TOKEN'
    chat_id = 'YOUR_CHAT_ID'
    api_url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
    requests.post(api_url, data={'chat_id': chat_id, 'text': message})

अब जब आपकी स्क्रिप्ट में कोई नया नोटिस डिटेक्ट होगा, तो वह सीधे आपके फोन पर मैसेज फ्लैश कर देगी। आप इस स्क्रिप्ट को Windows Task Scheduler या Cron Job (Linux) पर सेट कर सकते हैं ताकि यह दिन में हर 2-3 घंटे में अपने आप चले।

इथिकल वेब स्क्रैपिंग: 5 सबसे जरूरी बातें

वेब स्क्रैपिंग करते समय एक जिम्मेदार डेवलपर बनना बहुत जरूरी है। अगर आपकी स्क्रिप्ट गलत तरीके से काम करेगी, तो सर्वर पर लोड पड़ेगा और आपका IP एड्रेस हमेशा के लिए बैन हो सकता है।

  • Robots.txt फाइल चेक करें: किसी भी वेबसाइट पर स्क्रैपर चलाने से पहले domain.com/robots.txt पर जाकर देखें कि कौन से पाथ स्क्रैप करने की अनुमति है और कौन से नहीं।
  • Rate Limiting का ध्यान रखें: लूप चलाते समय हर रिक्वेस्ट के बीच कम से कम 2 से 5 सेकंड का डिले (time.sleep()) रखें। एक साथ सैकड़ों रिक्वेस्ट न भेजें।
  • Server Caching का इस्तेमाल करें: अगर डेटा बार-बार नहीं बदलता, तो हर मिनट सर्वर को हिट न करें। दिन में 2-4 बार स्क्रैप करना पर्याप्त है।
  • Error Handling लागू करें: नेटवर्क फेलियर या वेबसाइट का स्ट्रक्चर बदलने पर आपकी स्क्रिप्ट क्रैश नहीं होनी चाहिए। हमेशा try-except ब्लॉक का उपयोग करें।
  • पर्सनल डेटा स्क्रैप करने से बचें: यूजर का प्राइवेट डेटा या पासवर्ड प्रोटेक्टेड पेजों को बिना अनुमति स्क्रैप करना गैर-कानूनी हो सकता है।

इस प्रोजेक्ट को अपने रिज्यूमे में कैसे शोकेस करें?

कॉलेज प्रोजेक्ट्स और जॉब इंटरव्यू में प्रैक्टिकल प्रोजेक्ट्स का बहुत महत्व होता है। केवल किताबी ज्ञान की तुलना में ऐसा टूल दिखाना आपके रिज्यूमे को मजबूत बनाता है।

आप अपने GitHub रिपोजिटरी में इस प्रोजेक्ट को जोड़ते समय निम्नलिखित बातें मेंशन कर सकते हैं:

  • Problem Solved: मैनुअल नोटिस चेकिंग के समय को शून्य किया और महत्वपूर्ण अपडेट्स मिस होने की समस्या को खत्म किया।
  • Tech Stack Used: Python, Requests, BeautifulSoup4, Telegram Bot API, Cron Automation.
  • Key Feature: डुप्लीकेट अलर्ट्स रोकने के लिए Caching mechanism और Exception handling का उपयोग।

निष्कर्ष

वेब स्क्रैपिंग एक बहुत ही पावरफुल स्किल है जो ऑटोमेशन और डेटा साइंस दोनों में काम आती है। Python और BeautifulSoup की मदद से आपने न सिर्फ एक रियल-लाइफ प्रॉब्लम सॉल्व की, बल्कि रियल-वर्ल्ड वेब स्ट्रक्चर, DOM पार्सिंग और API इंटीग्रेशन को भी समझा। अब आप इस लॉजिक का इस्तेमाल ई-कॉमर्स साइट्स पर प्राइस ड्रॉप अलर्ट्स या जॉब बोर्ड्स से इंटर्नशिप ट्रैकर बनाने के लिए भी कर सकते हैं।

Frequently Asked Questions (FAQs)

1. क्या वेब स्क्रैपिंग करना पूरी तरह से लीगल है?

पब्लिकली उपलब्ध डेटा को पर्सनल या एजुकेशनल उपयोग के लिए स्क्रैप करना सामान्यतः लीगल है। हालांकि, वेबसाइट की 'Terms of Service' का उल्लंघन करना, Copyrighted कंटेंट चुराना या प्राइवेट डेटा स्क्रैप करना गैर-कानूनी हो सकता है।

2. अगर वेबसाइट का डिजाइन बदल जाए तो क्या स्क्रैपर काम करेगा?

नहीं, अगर वेबसाइट के HTML टैग्स या CSS क्लास नेम्स बदल जाते हैं, तो स्क्रैपर डेटा नहीं ढूंढ पाएगा। इसके लिए आपको अपनी BeautifulSoup की स्क्रैपर स्क्रिप्ट में नए HTML क्लासेस के अनुसार बदलाव करने होंगे।

3. जावास्क्रिप्ट से लोड होने वाली वेबसाइट्स को कैसे स्क्रैप करें?

जो वेबसाइट्स डेटा लोड करने के लिए भारी JavaScript या React/Angular का इस्तेमाल करती हैं, उन्हें केवल Requests लाइब्रेरी से एक्सट्रैक्ट नहीं किया जा सकता। ऐसी डायनामिक साइट्स के लिए Selenium या Playwright जैसे हेडलेस ब्राउजर टूल्स का उपयोग किया जाता है।

Post a Comment

0 Comments