Парсинг ТГ канала закрытый

Парсер программы телеграм. Для чего нужны и как пользоваться

  • В этой серии статей мы с Вами рассмотрим как написать свой отдельный клиент Telegram, который будет собирать данные из интересных нам чатов, а также посмотрим, как сохранять эти сведения в свою базу данных.

    Для создания отдельного клиента хорошо подойдет асинхронная библиотека «Telethon» (Вот репозиторий библиотеки). Сама библиотека может использоваться как для создания телеграм-ботов, так и для создания отдельных приложений работающих с API Telegram. Главным преимуществом является понятная документация в которой можно найти ответы на все вопросы (необходимо знание английского языка).

    Создание нашего проекта начнем с регистрации аккаунта разработчика здесь

    Регистрация разработчика

    Вводим пришедший в Telegram численно-буквенный код и попадаем на страницу регистрации нового приложения. Заполняем форму, достаточно первых двух граф:

    COLLECTING TELEGRAM USERS FROM CLOSED AND OPEN GROUPS | PARSING

    Парсинг телеграм-чатов отдельным приложением (часть 1), изображение №2

    Если все введено верно вы увидите следующие сведения.

    Парсинг телеграм-чатов отдельным приложением (часть 1), изображение №3

    Сразу оговорюсь, данных будет немного больше, но нам важны параметры App api_id и App api_hash.

    Поздравляю! Вы зарегистрировали ваше приложение в API Telegram. Закрывать страничку пока не стоит. Мы будем брать оттуда значения App api_id, App api_hash, Short_name для нашего приложения.

    Переходим в PyCharm

    Хорошим тоном будет не хранить в коде наш хэш и app_id, поэтому давайте сделаем красиво =) Используем библиотеку configparser для создания файла настроек. Создайте в корне проекта файл с расширением .ini (пример config.ini) и давайте поместим туда наши данные из аккаунта разработчика который мы зарегистрировали.

    Файл config.ini

    И да, я знаю про venv и переменные окружения. Вы можете использовать удобный вам метод.

    Далее нас ждет самое интересное. Давайте установим в наш проект саму библиотеку Telethon командой «pip install telethon» и импортируем в проект класс TelegramClient из нашей установленной библиотеки.

    import configparser from telethon import TelegramClient

    Далее давайте настроим передачу наших данных в подключение из файла настроек

    config = configparser.ConfigParser() config.read(«config.ini») # Присваиваем значения внутренним переменным api_id: str = config[‘Telegram’][‘api_id’] api_hash = config[‘Telegram’][‘api_hash’] username = config[‘Telegram’][‘username’] client = TelegramClient(username, api_id, api_hash) client.start()

    Обратите внимание что в файле «config.ini» первой строкой мы указали [Telegram]. С помощью этих тэгов мы просто не будем путаться в переменных настроек и разделять их в одном файле.

    Создадим нашу главную функцию и запросим у сервера телеграм сведения о нас.

    async def main(): about_me = await client.get_entity(‘me’) print(about_me)

    Наша библиотека Telethon асинхронная а значит функции и методы мы будем использовать с добавлением ключевых слов async и await (кстати можно и без них но не рекомендую)

    Для того, что бы наш клиент не закрывался после запуска мы добавим в конце нашего файла такую запись

    with client: client.loop.run_until_complete(main())

    Первый запуск

    При первом запуске в консоли PyCharm вас попросит ввести ваш номер телефона или токен бота

    Это нужно, что бы создать файл сессии он будет хранится в корне проекта с расширением .session ( удалять их не стоит о них поговорим позднее)

    Вводите ваш номер телефона в международном формате без «+»

    Вам снова пришел код в аккаунт телеграмм только теперь из 5 цифр. Введите их.

    Поздравляю вы запустили ваш клиент Телеграм.

    Так что же вернула нам наша функция main

    about_me = await client.get_entity(‘me’)

    наша переменная about_me теперь содержит объект User с специфическим типом данных библиотеки telethon.

    Внутри объекта вы можете увидеть данные о вашем аккаунте.

    Парсинг телеграм-чатов отдельным приложением (часть 1), изображение №7

    Для того, что бы посмотреть отдельные сведения давайте сделаем вот такой код

    async def main(): about_me = await client.get_entity(‘me’) print(‘Имя:’, about_me.first_name) print(‘Ник:’, about_me.username) print(‘Id’, about_me.id) print(‘Телефон’, about_me.phone)

    Ну в вашем случае звездочек не будет.

    Только что сервер Телеграм рассказал вам о вас чуть больше чем вы видите в своем аккаунте. В следующей статье мы немного обнаглеем и соберем с серверов Телеграм сведения об участниках какого-нибудь чата.

    Утечка данных из Telegram — проблема Telegram.

    прим. автора

    Все сведения которые мы будем получать являются общедоступными. И эти же сведения мы можем увидеть и через официальное приложение. Но я все-таки призываю Вас не использовать полученные знания в плохих целях. Вся изложенная информация подается с целью образования и популяризации языка программирования, его библиотек и возможностей.

    Полный код парсера Телеграм

    import configparser from telethon import TelegramClient config = configparser.ConfigParser() config.read(«config.ini») # Присваиваем значения внутренним переменным api_id: str = config[‘Telegram’][‘api_id’] api_hash = config[‘Telegram’][‘api_hash’] username = config[‘Telegram’][‘username’] client = TelegramClient(username, api_id, api_hash) client.start() async def main(): about_me = await client.get_entity(‘me’) print(‘Имя:’, about_me.first_name) print(‘Ник:’, about_me.username) print(‘Id’, about_me.id) print(‘Телефон’, about_me.phone) with client: client.loop.run_until_complete(main())

    Подпишитесь на рассылку

    Источник: happypython.ru

Рейтинг
( Пока оценок нет )
Загрузка ...