Python का उपयोग करके Telegram चैनल डेटा कैसे स्क्रैप करें?

13 जून 2025
5 मिनट पढ़ें
AI द्वारा जनरेट किया गया सारांश:

Telegram चैनलों से डेटा स्क्रैप करने की प्रक्रिया में जानकारी का स्वचालित संग्रह शामिल होता है, चाहे वह सार्वजनिक समूहों से हो या निजी समुदायों से। Python और Telethon लाइब्रेरी के माध्यम से संदेश, मेटाडेटा, मीडिया फ़ाइलें, समूह के सदस्य और बहुत कुछ प्राप्त किया जा सकता है।

Telegram की वेब स्क्रैपिंग कई कारणों से की जा सकती है, जिनमें शामिल हैं: विस्तृत मार्केटिंग रिसर्च का अध्ययन, कंटेंट का विश्लेषण करना, या किसी समुदाय में चर्चा थ्रेड्स पर नज़र रखना।

आगे आपको Python का उपयोग करके Telegram डेटा स्क्रैप करने की एक विस्तृत गाइड मिलेगी।

चरण 1: आवश्यक लाइब्रेरीज़ इंस्टॉल करना

Telegram स्क्रैपिंग की पहली स्टेप क्या है? आपको अपना Python वातावरण तैयार करना होगा, जिसमें संबंधित लाइब्रेरीज़ शामिल हों। मुख्य Telegram स्क्रैपिंग API टूल है Telethon — यह एक asynchronous लाइब्रेरी है जो प्लेटफ़ॉर्म के साथ इंटरैक्ट करने की अनुमति देती है।

इसे इंस्टॉल करने के लिए निम्नलिखित कमांड का उपयोग करें:


pip install telethon

चरण 2: Telethon लाइब्रेरी को कॉन्फ़िगर करना

Telegram API की वेब स्क्रैपिंग शुरू करने से पहले, आपको अपना व्यक्तिगत API ID और Hash प्राप्त करना आवश्यक है।

  1. अपने Telegram खाते में प्रवेश करें और उस डेवलपर खाते का फ़ोन नंबर दर्ज करके लॉग इन करें जिसका आप उपयोग करना चाहते हैं।

    1.png

  2. इसके बाद, "API development tools" अनुभाग पर क्लिक करें।

    2.png

  3. जो नई विंडो खुलेगी उसमें आपको अपने ऐप से संबंधित जानकारी भरनी होगी। केवल दो फ़ील्ड आवश्यक हैं। आप चाहें तो इन्हें बदल सकते हैं, बाकी फ़ील्ड वैकल्पिक हैं।

    3.png

  4. अंत में, "Create application" पर क्लिक करें। याद रखें, आपका API hash गोपनीय होता है, और प्लेटफ़ॉर्म आपको इसे रद्द करने की अनुमति नहीं देता। इस डेटा को कहीं भी प्रकाशित न करें।

    4.png

API और Hash प्राप्त करने के बाद, आप अब एक सत्र बनाकर अपने खाते में लॉग इन कर सकते हैं।

महत्वपूर्ण! Telegram की वेब स्क्रैपिंग स्क्रिप्ट लिखते समय अपनी फ़ाइल का नाम कभी भी telethon.py न रखें, क्योंकि Python इसे import करने की कोशिश करेगा और नाम टकराव (name conflict) के कारण विफल हो जाएगा।

अपने खाते में लॉग इन करने के लिए, सबसे पहले यह लिखें:


from telethon import TelegramClient

api_id = 12345678
api_hash = '0123456789abcdef0123456789abcdef'

with TelegramClient('anon', api_id, api_hash) as client:
   client.loop.run_until_complete(client.send_message('me', 'hello'))

पहली पंक्ति में, हम उस क्लास का नाम आयात करते हैं ताकि उसका एक इंस्टेंस बनाया जा सके। फिर हम अपने API और हैश को स्टोर करने के लिए वेरिएबल्स परिभाषित करते हैं।

बाद में, हम TelegramClient का एक नया इंस्टेंस बनाते हैं और उसे client नाम देते हैं। अब आप client वेरिएबल का उपयोग किसी भी कार्य के लिए कर सकते हैं, जैसे कि खुद को संदेश भेजना।

चरण 3: एक Telegram चैनल या ग्रुप का चयन करना

Telegram चैनलों की वेब स्क्रैपिंग शुरू करने से पहले, आपको डेटा संग्रह के स्रोत की पहचान करनी होगी। प्लेटफ़ॉर्म पर दो मुख्य प्रकार की कम्युनिटी होती हैं: चैनल और ग्रुप।

यदि आपको किसी निजी चैनल या ग्रुप तक पहुंच चाहिए, तो आपको उसका सदस्य होना आवश्यक है। कुछ समुदायों में सीमाएँ होती हैं या आमंत्रण की आवश्यकता होती है, और इन जटिलताओं को Telegram चैनल स्क्रैपिंग शुरू करने से पहले ध्यान में रखना चाहिए।

यह उदाहरण देखें कि किसी चैनल या ग्रुप को कैसे चुना जाए और उसमें शामिल होकर उसके सदस्यों तथा अन्य डेटा की स्क्रैपिंग कैसे की जाए:


from telethon import TelegramClient

api_id = 12345678
api_hash = '0123456789abcdef0123456789abcdef'
client = TelegramClient('anon', api_id, api_hash)


async def main():
   me = await client.get_me()
   username = me.username
   print(username)
   print(me.phone)
   
   async for dialog in client.iter_dialogs():
       print(dialog.name, 'has ID - ', dialog.id)


with client:
   client.loop.run_until_complete(main())

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

चरण 4: संदेश स्क्रैप करना

API पर कनेक्शन सेट करने से आपको उस चैनल या ग्रुप से संबंधित संदेश एकत्र करने की स्वतंत्रता मिलती है जिसे आपने लक्षित किया है। Python Telegram स्क्रैपिंग के माध्यम से, आप कई टेक्स्ट संदेश, टाइमस्टैम्प, मीडिया और प्रतिभागियों से संबंधित मेटाडेटा प्राप्त कर सकते हैं।

इसे करने का एक उदाहरण यहां दिया गया है:


from telethon import TelegramClient

api_id = 12345678
api_hash = '0123456789abcdef0123456789abcdef'
client = TelegramClient('anon', api_id, api_hash)


async def main():
   id_client = 32987309847

   object = await client.get_entity(id_client)

   print(object.title)
   print(object.date)

   if object.photo:  # जांच करें कि क्या कोई प्रोफ़ाइल फोटो है
       await client.download_profile_photo(object, file="profile.jpg")

   # सभी चैट संदेश प्रिंट करें
   async for message in client.iter_messages(id_client):
       print(f'{message.id}//{message.date} // {message.text}')

       # सभी चैट तस्वीरें सहेजें
       if message.photo:
           path = await message.download_media()
           print('File saved', path)


with client:
   client.loop.run_until_complete(main())

एक बार जब हमारे पास आवश्यक ID होती है, तो हम ग्रुप के संदेशों और संबंधित मेटाडेटा तक पहुंच सकते हैं। इसके बाद, समूह का नाम, उसकी निर्माण तिथि, अवतार (यदि उपलब्ध हो), संदेश और उनके संबंधित ID, साथ ही प्रकाशन की तिथियों जैसी जानकारी प्राप्त की जा सकती है। यदि संदेशों में चित्र हैं, तो उन्हें संदेशों के साथ स्वतः प्राप्त किया जा सकता है ताकि आगे की प्रक्रिया के लिए उनका उपयोग किया जा सके।

चरण 5: स्क्रैपर चलाना

एक बार सभी पैरामीटर सेट हो जाने पर, Python Telegram स्क्रैपर स्क्रिप्ट को सक्रिय किया जा सकता है। कुछ प्रारंभिक परीक्षण की सिफारिश की जाती है; संदेशों के एक बड़े सेट पर स्क्रिप्ट को चलाने से संभवतः कई समस्याएं सामने आएंगी जिन्हें पूर्ण पैमाने पर डेटा एकत्रीकरण से पहले ठीक किया जाना चाहिए।

स्क्रिप्ट चलाते समय निम्नलिखित दिशानिर्देशों का पालन अवश्य करें:

  • क्या स्क्रिप्ट सभी आवश्यक संदेश और मेटाडेटा एकत्र कर रही है?
  • क्या टेक्स्ट वैल्यू, दिनांक और समय, संदेश पहचान संख्या और मीडिया फ़ाइलें ठीक से कैप्चर हो रही हैं?
  • क्या Telegram API अनुरोधों के कार्यान्वयन में कोई समस्या है?

यदि कोई समस्या उत्पन्न होती है, तो आमतौर पर उन्हें अनुरोधों के बीच रुककर या यह सुनिश्चित करके हल किया जा सकता है कि चैनल या समूह वास्तव में उपलब्ध है।

चरण 6: वेब स्क्रैपिंग करते समय अतिरिक्त स्क्रैपिंग विकल्प

मूल डेटा संग्रह को स्वचालित करने के बाद, स्क्रैपर की कार्यक्षमता का विस्तार करना और नई डेटा एकत्रीकरण क्षमताएं जोड़ना संभव हो जाता है।

  1. चैनल या समूह में उपयोगकर्ताओं के विवरण निकालना, जैसे उनका पूरा नाम, पहचान संख्या और व्यक्तिगत स्थिति। यह उपयोगकर्ता सहभागिता का मूल्यांकन करने या कुछ महत्वपूर्ण उपयोगकर्ताओं को ट्रैक करने के लिए उपयोगी होता है।
  2. विशिष्ट शब्दों और दिनांक सीमा द्वारा फ़िल्टर करके संदेशों का चयन करना। केवल उन संदेशों को एकत्र करना जिनमें कुछ विशिष्ट शब्द होते हैं या जो कुछ निश्चित समय के भीतर भेजे गए थे, कभी-कभी आवश्यक होता है। इससे यह सुनिश्चित होता है कि एकत्र किया गया डेटा प्रासंगिक है और निर्धारित आवश्यकताओं को पूरा करता है।
  3. अतिरिक्त मेटाडेटा एकत्र करना। मुख्य डेटा जैसे टेक्स्ट संदेश और मल्टीमीडिया फ़ाइलों के अलावा, अन्य मेटाडेटा जैसे कि किसी संदेश को प्राप्त हुई कुल प्रतिक्रियाओं की संख्या, संदेश को कितनी बार अग्रेषित किया गया, और पोल की उपस्थिति भी एकत्र की जा सकती है।

from telethon import TelegramClient

api_id = 12345678
api_hash = '0123456789abcdef0123456789abcdef'

client = TelegramClient('session_name', api_id, api_hash)


async def main():
   channel = await client.get_entity(-4552839301)

   # चैनल से अंतिम 100 संदेश प्राप्त करें
   messages = await client.get_messages(channel, limit=100)

   # कीवर्ड द्वारा संदेश फ़िल्टर करें
   keyword = 'Hello'
   filtered_messages = [msg for msg in messages if keyword.lower() in msg.text.lower()]

   for message in filtered_messages:
       print(f"Message: {message.text}")
       print(f"Date: {message.date}")
       print(f"Sender: {message.sender_id}")

   # चैनल प्रतिभागी प्राप्त करें
   participants = await client.get_participants(channel)
   for participant in participants:
       print(f"Participant ID: {participant.id}, Username: {participant.username}")


with client:
   client.loop.run_until_complete(main())

चरण 7: API दर सीमा का प्रबंधन

Telegram की API के साथ काम करते समय यह ध्यान में रखना आवश्यक है कि एक विशिष्ट समय अवधि में किए जा सकने वाले कॉल्स की संख्या सीमित होती है। लगातार बहुत अधिक अनुरोध भेजने से प्लेटफॉर्म API एक्सेस को प्रतिबंधित कर सकता है या सर्वर की प्रतिक्रिया को धीमा कर सकता है।

इन समस्याओं को कम करने के लिए, प्रॉक्सी का उपयोग करने की सिफारिश की जाती है:


import random
import socks
from telethon import TelegramClient

# उपलब्ध प्रॉक्सी की सूची
proxy_list = [
   ("res.proxy-seller.com", 10000, socks.SOCKS5, True, "user1", "pass1"),
   ("res.proxy-seller.com", 10001, socks.SOCKS5, True, "user2", "pass2"),
   ("res.proxy-seller.com", 10002, socks.SOCKS5, True, "user3", "pass3"),
]

# एक यादृच्छिक प्रॉक्सी का चयन करें
proxy = random.choice(proxy_list)

try:
   client = TelegramClient('anon', api_id, api_hash, proxy=proxy)
   print(f"Successfully connected through proxy: {proxy}")
except (OSError, ConnectionError, TimeoutError, ValueError) as e:
   print(f"Proxy error: {e}, trying without it")
   client = TelegramClient('anon', api_id, api_hash)

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

क्यों करें Telegram स्क्रैपिंग?

Python के साथ Telegram स्क्रैपिंग का उपयोग विभिन्न क्षेत्रों में किया जा सकता है, क्योंकि यह प्लेटफ़ॉर्म एक अद्वितीय प्रकार के डेटा का भंडार रखता है जो कहीं और उपलब्ध नहीं होता।

मुख्य अनुप्रयोग क्षेत्रों में शामिल हैं:

  • मार्केटिंग अनुसंधान। प्रवृत्तियों, दर्शकों की रुचियों और प्रतिस्पर्धियों का विश्लेषण करना।
  • सामग्री निगरानी। समूहों और चैनलों से संदेश एकत्र करना और उनका विश्लेषण करना।
  • उपयोगकर्ता विश्लेषण। समुदाय के प्रतिभागियों के व्यवहार का अध्ययन करना।
  • स्वचालन। चैटबॉट्स और अधिसूचना प्रणालियों में आगे उपयोग के लिए संदेशों को एकत्र करना और संसाधित करना।

दरअसल, Telegram चैनल स्क्रैपर का उपयोग करके आप आवश्यक डेटा स्वचालित रूप से प्राप्त कर सकते हैं और उसका आगे का विश्लेषण सरल बना सकते हैं।

वेब स्क्रैपिंग Telegram: निष्कर्ष

इस बार हमने Python की मदद से Telegram से डेटा स्क्रैपिंग की चुनौती को संबोधित किया और चयनित समुदायों से सामग्री निकाली। निर्बाध निष्पादन सुनिश्चित करने के लिए प्रॉक्सी के उपयोग पर विशेष ध्यान दिया गया। Telethon लाइब्रेरी को इंस्टॉल किया गया, API सक्षम की गई, आवश्यक चैनल या समूह चुने गए, और संदेश, मीडिया तथा मेटाडेटा को पुनः प्राप्त किया गया।

Python के साथ वेब स्क्रैपिंग Telegram डेटा संग्रह को स्वचालित करने की अनुमति देता है, चाहे वह मार्केटिंग अनुसंधान, सामग्री विश्लेषण या उपयोगकर्ता गतिविधि की निगरानी के लिए हो। प्लेटफ़ॉर्म द्वारा लगाए गए प्रतिबंधों से बचने के लिए, अकाउंट रोटेशन, प्रॉक्सी, VPN या अनुरोधों के बीच डाइनामिक टाइमआउट का उपयोग किया जा सकता है। इसके अतिरिक्त, यह आवश्यक है कि आप कानून और नैतिक सीमाओं का पालन करें ताकि प्लेटफ़ॉर्म की नीतियों का उल्लंघन न हो।

लेख की सामग्री: