Levman5
@Levman5
print(“Hello World!”)

Как ускорить время сбора данных об участниках группы в pyrogram?

Привет, есть код который достаёт участников группы и с помощью ещё запроса в телеграм тянет их био. Код написан синхронно.

Как можно ускорить этот процесс?

Код

import os


from pyrogram import Client, types
from pyrogram.raw.types import InputUser
from pyrogram.raw.functions.users.get_full_user import GetFullUser

from dotenv import load_dotenv

import pandas as pd


load_dotenv('file.env')

e = input('Введите ссылку по типу https://t.me/git_cool: ').replace(
    'https://t.me/', '').replace('t.me/', '')

chat = e
app = Client("my_account", os.getenv('api_id'), os.getenv('api_hash'))


def get_about(m):
    u = app.send(GetFullUser(id=InputUser(
        user_id=m.user_id, access_hash=m.access_hash)), sleep_threshold=50.00)
    about = u.full_user.about if u.full_user.about is not None else 'У пользователя нет био :('
    return about


with app:
    print('Начинаем парсинг...')
    app.get_chat(chat)
    mems = []

    for mem in app.iter_chat_members(chat):
        member: types.User = mem.user
        username = member.username if member.username is not None else 'У пользователя нет никнейма'
        phone = member.phone_number if member.phone_number is not None else 'Пользователь скрыл свой номер телефона'
        name = member.first_name if member.first_name is not None else 'Пользователь не указал своё имя'
        last_name = member.last_name if member.last_name is not None else 'Пользователь не указал свою фамилию'
        m = app.resolve_peer(member.id)

        about = get_about(m)

        print(f'{username} [{name} {last_name}] {phone} - {about}')
        mems.append({'user_id': member.id, 'username': username, 'phone': phone,
                    'name': name, 'last_name': last_name, 'about': about})

print('Парсинг закончен')
print('Идёт загрузка в excel....Подождите немного')

print(mems)

df = pd.DataFrame(mems)
df.to_excel('members.xlsx', index=False)
print('Excel документ готов!')

  • Вопрос задан
  • 250 просмотров
Пригласить эксперта
Ответы на вопрос 1
mmmaaak
@mmmaaak
Переписать на асинхронность, если библиотека позволяет
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы