سبد خرید
0

سبد خرید شما خالی است.

آموزش استخراج کامل اعضای گروه تلگرام

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

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

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

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

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

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

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

در ابتد یک برنامه تلگرام ایجاد کنید و 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.')

 

 

کلیدواژه : تلگرام مارکتینگ
دیدگاه کاربران
  • ع 18 اردیبهشت 1400 / 22:47

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

    شماره را در کجا وارد کنم؟

  • محمد 19 اردیبهشت 1400 / 07:19

    1_چرا همه اعضای یک گروه را استخراج نمی کند؟ (حتی برخی از اعضایی که نام کاربری و نام هم دارند)
    2_اگر بخواهیم تمام اعضایِ تمام گروه هایی که عضو هستیم را استخراج کنیم، باید چه متنی را اضافه کنیم؟
    3_ بعد از آن، از روی تعداد تکرار یک آیدی، می توان تعداد گروه های مشترک با آن را هم بدست آورد.(Groups in common) و مثلا لیست را به ترتیب بیشترین گروه مشترک مرتب کرد.
    در این صورت با عضو شدن در چند گروه با موضوع مرتبط، میفهمیم چه کسانی واقعا علاقه مند به آن موضوع هستند.

    تشکر به خاطر پاسخگویی کامل و سریع شما

  • محمد 19 اردیبهشت 1400 / 07:21

    1_چرا همه اعضای یک گروه را استخراج نمی کند؟ (حتی برخی از اعضایی که نام کاربری و نام هم دارند)
    2_اگر بخواهیم تمام اعضایِ تمام گروه هایی که عضو هستیم را استخراج کنیم، باید چه متنی را اضافه کنیم؟
    3_ بعد از آن، از روی تعداد تکرار یک آیدی، می توان تعداد گروه های مشترک با آن را هم بدست آورد.(Groups in common) و مثلا لیست را به ترتیب بیشترین گروه مشترک مرتب کرد.
    در این صورت با عضو شدن در چند گروه با موضوع مرتبط، میفهمیم چه کسانی واقعا علاقه مند به آن موضوع هستند.

    تشکر به خاطر پاسخگویی کامل و سریع شما

  • محسن 23 اردیبهشت 1400 / 06:01

    سلام و عرض ادب. برای ارسال بیشتر از 60 پیام با یک شماره مجازی در تلگرام در 24 ساعت چه راهکار و ایده ای دارید؟ لطفا به ایمیل یا ای دی من در تلگرام جاب بفرستید با تشکر
    @MOHSENHB472

  • شکیب 21 خرداد 1400 / 11:41

    سلام
    خیلی عالییییی بود
    ی دنیا سپاس

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان