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.

Parser of Telegram channels/chats by keywords

MarefWeb/TelegramChatsScraper

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.

Читайте также:  Bounce tales java jar

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 channel/chat parser by keywords

It’s simple, install dependencies: pip install -r requirements.txt .

  • client information (api_id, api_hash, session_name),
  • recipient (to whom all these messages will be sent),
  • channel names (where the messages will come from),
  • keywords (words the message should contain).

Everything is ready to work.
Now run: «`python bot.py«.

About

Parser of Telegram channels/chats by keywords

Источник

Парсим данные в Telegram на Python. Часть 1. Выбираем библиотеку и изучаем подписчиков

Собираем данные о подписчиках телеграм-каналов и чатов с помощью библиотеки Telethon.

Иллюстрация: Катя Павловская для Skillbox Media

Антон Яценко

Для анализа телеграм-каналов и чатов используют парсеры данных. Это специальные программы, которые позволяют получить информацию о подписчиках, публикациях и обсуждениях с помощью механизмов самого мессенджера (API). Существует немало коммерческих парсеров, однако создать их можно и самостоятельно — используя специальные библиотеки для языков программирования.

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

Библиотека Telethon и особенности парсинга

Написать парсер для Telegram можно на любом языке программирования, позволяющем работать с API: Python, JavaScript, Go и так далее. Каждый из них имеет свою универсальную библиотеку для работы с любыми API, а некоторые — даже специализированные библиотеки для Telegram.

Мы остановимся на Python — одном из самых популярных языков программирования. В экосистеме Python есть удобная асинхронная библиотека для работы с API Telegram — Telethon. Её используют для парсинга информации из мессенджера, управления сообществами и создания ботов. У Telethon два больших преимущества: подробная документация и большая популярность в комьюнити. Работает библиотека тоже отлично 🙂

Ограничения на парсинг данных из Telegram

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

Канал. Если к каналу не подключены комментарии, то список пользователей можно спарсить только при выполнении следующих условий:

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

Чат. Ограничений на парсинг нет. Главное — чтобы вы были участником этого чата. Если вас в нём нет и он закрыт, спарсить ничего не получится.

Перейдём к написанию кода: получим данные для доступа к API Telegram и напишем парсер списка участников.

Шаг 1

Регистрируемся в разделе инструментов разработчика Telegram

Для работы с API Telegram нам необходимо получить api_id и api_hash. Сделать это можно в разделе инструментов разработчика Telegram. Это обязательное действие не только при создании нашего бота, но и при создании любого бота или парсера, который задействует API мессенджера.

Переходим по ссылке и авторизуемся, используя номер телефона, привязанный к вашему профилю в мессенджере. После авторизации необходимо выбрать пункт API development tools:

В открывшейся форме заполняем пустые поля. Всё заполнять необязательно, главное — указать полное и краткое имя приложения:

После нажатия Create application откроется страница, на которой нас интересует два параметра:

Не отправляйте свои api-id и api-hash третьим лицам. Их могут использовать для работы с мессенджером от вашего имени.

Шаг 2

Импортируем библиотеки и запускаем клиент

Для написания кода парсера мы будем использовать Visual Studio Code. Это стандартная IDE, которую можно заменить на любую другую — например, на PyCharm или онлайн-редактор типа Google Colab.

Если вы никогда не работали на своём компьютере с Python, его будет необходимо установить. Сделать это проще всего по нашей инструкции.

Теперь откроем вкладку «Терминал» в нашей IDE и установим библиотеку для парсинга данных:

После входа в систему в папке с кодом появится файл .session. Это файл базы данных, который делает сессию постоянной, то есть как бы не даёт нам разлогиниться. База данных благодаря библиотеке Telethon создаётся автоматически (формат — SQLite) — в ней хранится информация о текущей сессии парсинга: хеш, IP-адрес, с которого она производится, время сессии и другие технические данные подключения.

Шаг 3

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

Будем собирать информацию из чатов, на которые подписан пользователь. Это удобно, так как позволяет обращаться к ним, не указывая конкретный адрес, а выбирая из списка.

Начнём с создания пустых списков, которые пригодятся для хранения списка чатов, и инициализируем две переменные (они используются для фильтрации чатов):

Запустим файл main.py. Для этого напишем в терминале:

Выберем любую группу, введя в терминал нужную цифру. В нашем случае это будет группа «Вастрик.ЗОЖ».

Теперь мы видим текстовые сообщения, которые «зашивали» в код. И главное, понимаем, что парсинг прошёл удачно.

Откроем нашу папку. В ней появился файл members.csv:

Откроем его и посмотрим на содержимое:

Всё получилось! В файле мы видим всех пользователей группы с указанием их юзернейма и имени, включающего также фамилию с дополнительными символами.

Что дальше?

В следующей части мы научимся парсить сообщения из чатов. Изучим новые методы и объекты библиотеки Telethon и поработаем с форматом JSON, который особенно удобен для хранения текстовой информации.

Читайте также:

Источник

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.

Источник

Оцените статью