0 / 0 / 0
Регистрация: 20.06.2022
Сообщений: 6

Парсер, который собирает в базу данных всех участников чата в телеграм

20.06.2022, 01:30. Показов 2545. Ответов 6

Студворк — интернет-сервис помощи студентам
Здравствуйте, ребята. У меня есть парсер, который собирает в базу данных всех участников чата в телеграм. Но я хотел бы добавить возможность, чтобы парсер мог собирать в базу данных только активных участников чата по какому-нибудь из методов (онлайн и(или) был в сети не более 12 часов назад/писал сообщение в чат в последние 12 часов).
Буду очень Благодарен за помощь и готов предложить скромное вознаграждение. Пока что не так богат, как хотелось бы. Прикладываю ссылку на парсер!

https://disk.yandex.ru/d/1YYL8wfIOsGdRw
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.06.2022, 01:30
Ответы с готовыми решениями:

Парсер не собирает данных с сайта
всем привет. парсер Scrapy не собирает данных( делаю в pycharm), можете помочь в чем проблема? заранее спасибо import scrapy ...

Ищу партнера который сможет создать парсер цен маркетплейсов с перенаправлением этой информации в телеграм
Здравствуйте! Ищу партнера, от вас отличные знания в области создания парсеров и телеграм ботов. Прибыль 50% на 50% по нарастающей и может...

Определить всех участников олимпиады, набравших наибольшее среди всех участников количество баллов
Региональный этап олимпиады по информатике проводился для учеников 9–11-х классов. Все ученики участвовали в общем конкурсе. Каждый ...

6
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
20.06.2022, 02:36
Лучший ответ Сообщение было отмечено Ogedjan как решение

Решение

в заголовки - добавьте колонку статуса онлайн
Python
1
writer.writerow(['username','user id', 'access hash','name','group', 'group id', 'online'])
в переборе пользователей - проверяйте статус, и пишите в переменную значение
Python
1
2
3
4
5
        if isinstance(user.status, (UserStatusOnline, UserStatusRecently)):
            if isinstance(user.status, UserStatusOnline):
                online = 'now' 
            else:
                online = 'recently'
а там где пишутся данные в файл, добавьте online
Python
1
writer.writerow([username,user.id,user.access_hash,name,target_group.title, target_group.id, online])
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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', 'online'])
    for user in all_participants:
        if isinstance(user.status, (UserStatusOnline, UserStatusRecently)):
            if isinstance(user.status, UserStatusOnline):
                online = 'now' 
            else:
                online = 'recently'
 
            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, online])


Но, как Вы наверное знаете, многие не делятся своим статусом онлайн и тогда используется усредненное значение (недавно (recently), в течение недели, в течение месяца). Поэтому даже если Вы видите, что статус пользователя "recently",
это не обязательно означает, что он не онлайн.
1
0 / 0 / 0
Регистрация: 20.06.2022
Сообщений: 6
20.06.2022, 14:26  [ТС]
Спасибо большое за подсказку! Правда я в python совсем новичок. А как-то можно всё-таки людей парсить исходя из сообщений в чате? Можно ли спарсить такую аудиторию, где будут только пользователи, которые оставляли сообщения в последние 12 часов, например?

Добавлено через 18 минут
А ещё по поводу второй части кода, где проверка статуса идёт. Там разве не получается так, что идёт проверка пользователей по статусу. Online = 'now' - тем, что онлайн, а остальные (у кого статус не онлайн) записываются в online = 'recently' ?
Думаю, тут нужно ещё проверить условие, есть ли у пользователя статус recently. Я если где-то ошибся, то прошу прощения. Я правда новичок))
0
0 / 0 / 0
Регистрация: 20.06.2022
Сообщений: 6
20.06.2022, 14:35  [ТС]
Столкнулся, кстати, с такой ошибкой. Будто бы нет в telethon такой такого имени, хотя библиотека точно установлена
Миниатюры
Парсер, который собирает в базу данных всех участников чата в телеграм  
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
20.06.2022, 15:12
Там разве не получается так, что
Нет

Правда я в python совсем новичок
Столкнулся, кстати, с такой ошибкой.
Тогда начните изучение языка с изучения языка, а не телеграмм ботов. Я понимаю так веселее, но это потеря времени.
0
0 / 0 / 0
Регистрация: 20.06.2022
Сообщений: 6
20.06.2022, 15:30  [ТС]
Я вот как раз хотел совместить приятное с полезным. Python изучаю понемногу, а этот парсер нужен как раз самому. Вот и ломаю голову уже неделю, как всё-таки сделать эту функцию. Уже дошёл до форумов))

Добавлено через 1 минуту
Jabbson, Здравствуйте. Может быть есть возможность сделать эту работу за некую оплату?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
20.06.2022, 15:35
Для работы за плату у нас есть специальный отдел.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.06.2022, 15:35
Помогаю со студенческими работами здесь

Напишите код, который выведет суммарный возраст всех участников. Решите задачу через цикл for...in.
Всем доброго времени суток! Никак не могу выполнить ниже указанное задание,буду очень признателен вашей помощи. Заранее спасибо! ...

Как добавить ID чата в базу данных SQlite?
Здравствуйте, не понимаю как добавить ID чатов телеграм в базу данных, чтобы потом считывать их и рассылать туда сообщения. Может есть...

Как добавить текст, введенный в телеграм боте в базу данных sqlite?
задача: пользователь вводит название товара, его цену и загружает картинку, а эти данные вносятся в базу данных код: import telebot...

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

Нужен бот, для Стим чата, который просто будет сидеть в чате и записывать логи чата
Ребят, для своей группы в стиме хочу бот , и что бы он записывал лог чата в любой файл


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru