شما این محصولات را انتخاب کرده اید

سبد خرید

شناسه پست: 21168
بازدید: 1365

استخراج اعضای گروه تلگرام با  استفاده از طریق پایتون

تلگرام یکی از بهترین برنامه های ارتباطی در سراسر جهان است. افراد معمولاً برای مدیریت انجمن ها و تبلیغات خود از تلگرام استفاده می کنند.

شرکت های نوپا یا پروژه های در حال اجرا از تلگرام برای جلب توجه مخاطبان به محصولات و خدمات خود استفاده می کنند. اعضای تلگرام با جامعه درگیر می شوند! این همان چیزی است که همه ما می خواهیم. اعضای متعهد به رشد جامعه کمک خواهند کرد.

در این آموزش ، شما یاد خواهید گرفت که چگونه از اعضای گروه  تلگرام خروجی بگیرید.

 

 

چرا اعضای گروه های تلگرامی استخرج میکنیم؟

فرصت خوبی برای جلب توجه در گروه های مرتبط تلگرامی است. ممکن است بخواهید اعضای سایر گروه های مرتبط را  خروجی و به اعضای  گروه خود اضافه کنید. همچنین ، می توانید برای آنها پیام ارسال کنید و شروع تبلیغات کنید

در ابتد یک برنامه تلگرام ایجاد کنید و API خود را دریافت کنید!

به سایت  my.telegram.org  بروید و وارد شوید.

توجه داشته باشد حتما آی پی خود را تغییر دهد و از سرور خارج از کشور استفاده کنید

 

استخراج اعضای گروه تلگرام

روی API development tools  کلیک کنید و قسمتهای مورد نیاز را پر کنید.

ارسال پیام انبوه در تلگرام

می توانید هر نامی را برای برنامه خود انتخاب کنید. پس از ارسال ، api_id و api_hash دریافت خواهید کرد. آنها را در جایی ذخیره کنید. شما برای ورود به Telegram API از این مقدار ها  استفاده خواهید کرد.

ٖارسال پیام انبوه در تلگرام

نصب Telethon در پایتون

Telethon یک کتابخانه عالی MTProto API Telegram است که توسط LunamiWebs نوشته شده است ، می توانید صفحه Github آنرا  بررسی کنید. با استفاده از pip می توانید telethon را نصب کنید:


python pip install telethon

توجه: اگر از Linux یا Mac استفاده می کنید ، برای جلوگیری از مشکلات دسترسی لازم است قبل از pip از sudo استفاده کنید.

یک Client Object ایجاد کرده و وارد شوید!

آخرین نسخه telethon دارای دو ماژول sync و async است. ماژول async از asyncio استفاده می کند که خارج از محدوده این مقاله است. اگرچه با استفاده از هر دو ماژول می توانید عملکرد یکسانی را بدست آورید اما به دلیل سادگی ما از ماژول sync در این آموزش استفاده خواهیم کرد.

بنابراین به عنوان اولین گام ، ماژول sync را باید از کتابخانه Telethon وارد کنید.


from telethon.sync import TelegramClient

from telethon.sync import TelegramClient
api_id = 123456
api_hash = 'YOUR_API_HASH'
phone = '+111111111111'
client = TelegramClient(phone, api_id, api_hash)

مرحله بعدی اتصال به تلگرام و بررسی اینکه آیا دسنرسی مربوطه را دارید ؟ در غیر این صورت درخواست کد OTP ارسال کرده و از کاربر می خواهید کدی را که دریافت کرده است در حساب تلگرام خود وارد کند.

در این مرحله باید کدی که از طرف تلگرام به اکانت شما ارسال شده  است را در terminal یا cmd وار کنید.

client.connect()
if not client.is_user_authorized():
client.send_code_request(phone)
client.sign_in(phone, input('Enter the code: '))

پس از ورود به سیستم ، یک پرونده .session ایجاد می شود. این یک فایل پایگاه داده است که session ورودی  شما را به صورت لاگ ذخیره می کند.

مشاهده لیست گروه های موجود در اکانت تلگرام شما

انتخاب گروه مورد نظر برای دریافت خروجی از اعضای گروه

from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty
chats = []
last_date = None
chunk_size = 200
groups=[]


result = client(GetDialogsRequest(
offset_date=last_date,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=chunk_size,
hash = 0
))
chats.extend(result.chats)

توجه: از offset_date و offset_peer برای فیلتر کردن چت ها استفاده می شود. ما مقادیر خالی را به این پارامترها ارسال می کنیم بنابراین API همه گروه ها را برمی گرداند. offset_id و حد برای صفحه بندی استفاده می شود. در اینجا تعداد 200 تا از آخرین گفتگوی کاربر را دریافت می کنیم.

در این آموزش تصور می کنیم که فقط به گروه های بزرگ علاقه داریم. بنابراین بررسی کنید که آیا گروه سوپر گروه هست یا خیر  و آن را به لیست خود اضافه کنید.

for chat in chats:
try:
if chat.megagroup== True:
groups.append(chat)
except:
continue

در این مرحله باید گروه مورد نظر را انتخاب کنید
پس از لیست کردن گروه ها ، باید یک  شماره وارد کنید و گروه مورد نظر خود را انتخاب کند.  و شروع به دریافت خروجی میکند


print('Choose a group to scrape members from:')
i=0
for g in groups:
print(str(i) + '- ' + g.title)
i+=1


g_index = input("Enter a Number: ")
target_group=groups[int(g_index)]

ذخیره اعضای گروه  تلگرام استخراج شده را در یک فایل CSV ذخیره کنی

اکنون از ماژول csv Python برای ذخیره داده های خروجی گرفته شده در یک فایل CSV استفاده میکنیم ابتدا یک فایل csv را در حالت نوشتن با رمزگذاری UTF-8 باز کنید

print('Saving In file...')
with open("members.csv","w",encoding='UTF-8') as f:
writer = csv.writer(f,delimiter=",",lineterminator="\n")
writer.writerow(['username','user id', 'access hash','name','group', 'group id'])
for user in all_participants:
if user.username:
username= user.username
else:
username= ""
if user.first_name:
first_name= user.first_name
else:
first_name= ""
if user.last_name:
last_name= user.last_name
else:
last_name= ""
name= (first_name + ' ' + last_name).strip()
writer.writerow([username,user.id,user.access_hash,name,target_group.title, target_group.id])
print('Members scraped successfully.')

توجه 1: هر کاربر نام کاربری ندارد. اگر کاربر نام کاربری نداشته باشد ، API هیچکدام را بر نمی گرداند. برای جلوگیری از نوشتن None و به جای نوشتن یک سطر خالی ، بررسی کنید آیا کاربر نام کاربری دارد یا خیر. در غیر این صورت ، یک رشته خالی به عنوان نام کاربری ایجاد کنید.

توجه 2: مشابه نام کاربری ، ممکن است برخی از کاربران نام یا نام خانوادگی نداشته باشند ، بنابراین ما برای نام نیز همین کار را می کنیم.

برای برخی از گروه های بزرگ ممکن است چند دقیقه طول بکشد تا اعضا را بدست آورید. اما سرانجام باید این پیام را که Members scraped successfully مشاهده کنید. که نشان می دهد همه چیز کاملاً کار کرده است.

بنابراین ما نام کاربری ، نام ، شناسه کاربر ، هش کاربر و جزئیات گروه را برای هر کاربر در پرونده CSV ذخیره کردیم. شما می توانید از شناسه کاربری و هش کاربر برای افزودن اعضای تلگرام  استخراج شده به گروه خود استفاده کنید یا با استفاده از Telethon برای اعضای گروه تلگرام پیام ارسال کنید. اطلاعات بیشتر در این مورد در آموزشهای بعدی است.

در اینجا کد اجرایی کامل این آموزش آورده شده است:

from telethon.sync import TelegramClient
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty
import csv


api_id = 123456
api_hash = 'YOUR_API_HASH'
phone = '+111111111111'
client = TelegramClient(phone, api_id, api_hash)


client.connect()
if not client.is_user_authorized():
client.send_code_request(phone)
client.sign_in(phone, input('Enter the code: '))




chats = []
last_date = None
chunk_size = 200
groups=[]


result = client(GetDialogsRequest(
offset_date=last_date,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=chunk_size,
hash = 0
))
chats.extend(result.chats)


for chat in chats:
try:
if chat.megagroup== True:
groups.append(chat)
except:
continue


print('Choose a group to scrape members from:')
i=0
for g in groups:
print(str(i) + '- ' + g.title)
i+=1


g_index = input("Enter a Number: ")
target_group=groups[int(g_index)]


print('Fetching Members...')
all_participants = []
all_participants = client.get_participants(target_group, aggressive=True)


print('Saving In file...')
with open("members.csv","w",encoding='UTF-8') as f:
writer = csv.writer(f,delimiter=",",lineterminator="\n")
writer.writerow(['username','user id', 'access hash','name','group', 'group id'])
for user in all_participants:
if user.username:
username= user.username
else:
username= ""
if user.first_name:
first_name= user.first_name
else:
first_name= ""
if user.last_name:
last_name= user.last_name
else:
last_name= ""
name= (first_name + ' ' + last_name).strip()
writer.writerow([username,user.id,user.access_hash,name,target_group.title, target_group.id])
print('Members scraped successfully.')

نویسنده

مدیر سایت
با سلام بنده حمیدرضا مدیر و بنیانگذار سایت ویو پنل هستم که الان بیش از 5 سال در زمینه کدنویسی سورس ربات تلگرام در حال فعالیت بودم و همچنان هستم. سایت ویو پنل را هم با درخواست زیاد شما همکاران عزیز راه اندازی کردم تا بتوانم نیازهای شما را آماده کنم تا بتوانید مثل حرفه ای ها در تلگرام مشغول فعالیت باشید.