Парсинг сообщений телеграмм чатов python

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Python program designed to scrape posts from Telegram channels using HTTP requests and HTML parsing, rather than Telegrams API. This is useful, as selfbots are against Telegram’s ToS.

License

Steelio/Telegram-Post-Scraper

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Telegram Post Scraper via Python

Telegram-Post-Scraper is a Python program designed to scrape posts from Telegram channels using HTTP requests and HTML parsing, rather than Telegram’s API. This program is useful when creating bots or using Telegram’s API is not feasible or against Telegram’s terms of service. TG-Post-Scraper also has the capabilities to download multimedia, videos and images from a Telegram post. Atop of this, it offers the ability to save posts and the bulk data to text files for ease of access.

• Version 2.0 released. Code was rewritten. Should be more efficient. • Added support for multiple links. Separate with a comma. Link Ex: (t.me/somegroup/540,t.me/someothergroup/250) • Added video downloading support. •• If you find any bugs please submit an issue ticket. Whipped this up semi-buzzed. So I may have overlooked something. Much love, enjoy y'all ♥ 
  • Scrapes posts from Telegram channels using HTTP requests and HTML parsing.
  • Can copy the content of the posts, and download media such as images and videos.
  • Supports scraping multiple links in one session. Seperate links at the beginning of the program with commas. (t.me/groupID/333,t.me/someotherID/444,t.me/anotherOne/555)
  • Does not require a bot or an API key.
  • Useful for situations where using Telegram’s API or creating a bot is not feasible or against Telegram’s terms of service.

To use Telegram-Post-Scraper, you need to have Python 3 installed on your system, as well as the following Python packages: This program was built on Python 3.10.10 64bit

You can install these packages using pip by running the following command:

pip install -r requirements.txt 

To use Telegram-Post-Scraper, you just provide it with a URL of a Telegram post.

1. Open Command Prompt, Powershell, or Terminal. 2. Run "py(thon3) main.py" 3. Enter your Telegram post URL. (Format: https://t.me/SOMEGROUP/NUMERICID) 3a. You can find the link of a Telegram post by right clicking it and pressing "Copy Link". 4. Follow through the prompts in the console window. 

If you find any bugs or have suggestions for improvements, feel free to create an issue or submit a pull request.

Was this program useful to you? If you want to donate ♥ :

BTC: bc1qvrm0tepx6jdxcsr99z5xqmswcl9ad333nenkeg LTC: LSuSA99uMbC1BtQ4eJxpczAsv3W7KbtahF

About

Python program designed to scrape posts from Telegram channels using HTTP requests and HTML parsing, rather than Telegrams API. This is useful, as selfbots are against Telegram’s ToS.

Источник

Телеграм. Как собрать информацию из чатов. Часть 1

Телеграм. Как собрать информацию из чатов. Часть 1

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

Регистрация аккаунта разработчика и настройка клиента

Всем привет! Парсинг сайтов — дело веселое, можно использовать эти данные для своего ресурса или же делать это на заказ. А что если скачать, к примеру, все сообщения из телеграм-чата или список его участников, а затем использовать эти данные для аналитики или еще лучше, для формирования своей базы данных пользователей, которым интересна та или иная тема.

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

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

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

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

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

Парсинг телеграм-чатов отдельным приложением (часть 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()) 

Источник

Читайте также:  Colors in php tables
Оцените статью