Telegram-Channel-Member-Scraper icon indicating copy to clipboard operation
Telegram-Channel-Member-Scraper copied to clipboard

Export to csv

Open Eskorpio opened this issue 4 years ago • 0 comments

Hello,

I use a script to export the users of a group to a csv file. I would like to be able to export the users of a channel as well. This is the script:

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

api_id = xxxxx api_hash = 'xxxxxxxxxxxxx' phone = '+0000000000' 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.')`

Could you add the csv export functionality to your script, or tell me how to implement the possibility of exporting channels in the script I have put in?

Thank you very much.

Eskorpio avatar Jan 11 '21 19:01 Eskorpio