Python کے ذریعے Telegram چینل کا ڈیٹا کیسے نکالا جائے؟

تبصرے: 0

Telegram چینلز سے ڈیٹا سکریپ کرنا خودکار معلومات جمع کرنے کا عمل ہے، چاہے وہ پبلک گروپس ہوں یا پرائیویٹ کمیونٹیز۔ Python اور Telethon لائبریری کے ذریعے پیغامات، میٹا ڈیٹا، میڈیا فائلز، گروپ ممبرز اور بہت کچھ حاصل کیا جا سکتا ہے۔

Telegram ویب سکریپنگ کئی وجوہات کے لیے کی جا سکتی ہے، جن میں تفصیلی مارکیٹنگ ریسرچ کا مطالعہ، مواد کا تجزیہ، یا کسی کمیونٹی میں گفتگو کے سلسلے کو ٹریک کرنا شامل ہے۔

آگے ایک تفصیلی رہنما ہے جس میں بتایا گیا ہے کہ Python کے استعمال سے Telegram ڈیٹا کو کیسے سکریپ کیا جائے۔

مرحلہ 1: مطلوبہ لائبریریاں انسٹال کرنا

Telegram سکریپنگ کا پہلا قدم کیا ہے؟ سب سے پہلے اپنے Python ماحول کو سیٹ اپ کرنا ہوتا ہے جس میں متعلقہ لائبریریاں شامل ہوں۔ Telegram سکریپنگ کے لیے بنیادی API ٹول Telethon ہے — یہ ایک غیر ہموار  لائبریری ہے جو پلیٹ فارم سے تعامل کی اجازت دیتی ہے۔

اسے انسٹال کرنے کے لیے درج ذیل کمانڈ استعمال کریں:


pip install telethon

مرحلہ 2: Telethon لائبریری کو ترتیب دینا

Telegram API کے ذریعے ویب سکریپنگ کرنے سے پہلے، ایک ذاتی API ID اور Hash حاصل کرنا ضروری ہے۔

  1. اپنے Telegram اکاؤنٹ تک رسائی حاصل کریں اور اس ڈویلپر اکاؤنٹ کا فون نمبر استعمال کرتے ہوئے لاگ ان کریں جسے آپ استعمال کرنا چاہتے ہیں۔

    1.png

  2. اس کے بعد، API ڈیولپمنٹ ٹولز کے سیکشن پر کلک کریں۔

    2.png

  3. ایک نئی ونڈو میں، آپ سے اپنی ایپ کے بارے میں معلومات فراہم کرنے کے لیے کہا جائے گا۔ صرف دو فیلڈز درکار ہیں۔ اگر آپ چاہیں تو ان کو تبدیل کر سکتے ہیں، باقی فیلڈز اختیاری ہیں۔

    3.png

  4. آخر میں، “Create application” پر کلک کریں۔ یاد رکھیں، آپ کا API hash خفیہ ہوتا ہے، اور پلیٹ فارم اسے منسوخ کرنے کی اجازت نہیں دے گا۔ اس ڈیٹا کو کبھی بھی عام نہ کریں۔

    4.png

ایک بار جب آپ کے پاس API اور Hash آ جائے، تو آپ اکاؤنٹ میں لاگ ان ہونے کے لیے ایک سیشن بنا سکتے ہیں۔

اہم نوٹ! جب آپ Telegram کے لیے ویب سکریپنگ کا اسکرپٹ بنا رہے ہوں تو اپنی فائل کا نام telethon.py ہرگز نہ رکھیں، کیونکہ Python اس نام کو ماڈیول سمجھ کر TelegramClient کو امپورٹ کرنے کی کوشش کرے گا، جس کی وجہ سے تنازع پیدا ہو گا۔

اپنے اکاؤنٹ میں لاگ ان ہونے کے لیے، سب سے پہلے یہ لکھیں:


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 اور hash کو محفوظ کرنے کے لیے متغیراتکو متعین کرتے ہیں۔

بعد میں، ہم TelegramClient کا ایک نیا انسٹینس بناتے ہیں اور اسے کہتے ہیں۔ اب آپ ویریبل کو کسی بھی مقصد کے لیے استعمال کر سکتے ہیں، مثلاً اپنے آپ کو ایک پیغام بھیجنے کے لیے۔

مرحلہ 3: کسی ٹیلیگرام چینل یا گروپ کا انتخاب

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())

یہ ظاہر کرتا ہے کہ کس طرح آپ اپنے اکاؤنٹ میں لاگ ان کر کے مخصوص رسائی حاصل کر سکتے ہیں، جس میں وہ تمام گفتگو شامل ہوتی ہے جن میں وہ اہم IDs موجود ہوتی ہیں جو کہ منتخب کردہ چینل یا گروپ کے ساتھ انٹرفیس قائم کرنے کے لیے ضروری ہوتی ہیں۔

مرحلہ 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:  # Check if there is a profile photo
       await client.download_profile_photo(object, file="profile.jpg")

   # Print all chat messages
   async for message in client.iter_messages(id_client):
       print(f'{message.id}//{message.date} // {message.text}')

       # Save all chat photos
       if message.photo:
           path = await message.download_media()
           print('File saved', path)


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

جب ہمارے پاس مطلوبہ ID آ جاتی ہے، تو ہم گروپ کے پیغامات اور متعلقہ میٹا ڈیٹا تک رسائی حاصل کر سکتے ہیں۔ اس کے بعد، گروپ کا نام، تخلیق کی تاریخ، اوتار (اگر دستیاب ہو)، پیغامات اور ان کے متعلقہ IDs کے ساتھ اشاعت کی تاریخیں حاصل کی جا سکتی ہیں۔ اگر پیغامات میں تصاویر شامل ہوں تو وہ بھی خودکار طور پر پیغامات کے ساتھ حاصل کی جا سکتی ہیں تاکہ مزید تجزیہ کیا جا سکے۔

مرحلہ 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)

   # Get the last 100 messages from the channel
   messages = await client.get_messages(channel, limit=100)

   # Filter messages by keywords
   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}")

   # Get channel participants
   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

# List of available proxies
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"),
]

# Select a random proxy
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 کی ویب اسکریپنگ کے ذریعے مارکیٹنگ تحقیق، مواد کے تجزیہ، اور حتیٰ کہ صارف کی سرگرمی کی نگرانی کے لیے ڈیٹا اکٹھا کرنے کے عمل کو خودکار بنایا جا سکتا ہے۔ پلیٹ فارم کی طرف سے عائد کردہ پابندیوں سے بچنے کے لیے، اکاؤنٹ روٹیشن، پراکسیز، VPNs، یا درخواستوں کے درمیان متحرک وقفے کا استعمال بھی کیا جا سکتا ہے۔ اس کے ساتھ ساتھ، قانون اور اخلاقی حدود کا خیال رکھنا بھی ضروری ہے تاکہ پلیٹ فارم کی پالیسیوں کی خلاف ورزی نہ ہو۔

تبصرے:

0 تبصرے