Разработать парсер linkedin на телеграмм боте
1. Цель проекта
Создание парсера для LinkedIn, который будет работать через Telegram. Парсер должен собирать информацию о пользователях и компаниях с LinkedIn, включая:- Имя пользователя
- Ссылка на профиль пользователя
- Название компании
- Ссылка на профиль компании
- Почтовые адреса (по возможности)
- (пункты могут добавляться в зависимости от возможностей api)
Парсинг будет осуществляться с использованием следующих библиотек:
- linkedin-api
- linkedin-scraper
- (или других при наличии)
2. Основные функциональные требования
-
Интерфейс с Telegram:
- Создать бота в Telegram, который будет взаимодействовать с пользователями.
- Пользователь может отправлять запросы для поиска профилей на LinkedIn и получать результаты в виде сообщений в Telegram.
- Результаты поиска, помимо вывода в Telegram, должны быть экспортированы в Google Таблицы.
-
Поиск на LinkedIn:
- Парсинг информации по ссылке на поиск с выставленными фильтрами
- Реализовать поиск через LinkedIn Search и Sales Navigator.
-
Обработка ошибок:
- Обработка ошибок, возникающих при неудачном запросе, блокировке аккаунтов и других нештатных ситуациях.
-
Экспорт в Google Таблицы:
- После получения результатов поиска, парсер должен автоматически экспортировать данные в Google Таблицы.
- Для каждого поиска создавать новый лист, с уникальным названием по имени пользователя
- Таблица должна содержать следующие колонки:
- Имя пользователя
- Ссылка на профиль
- Название компании
- Ссылка на компанию
- Почта (если доступно)
- Для работы с Google Таблицами необходимо использовать Google Sheets API для автоматического создания и редактирования таблиц.
3. Функциональные особенности
-
Телеграмм-бот:
- Бот должен принимать команды от пользователя через Telegram:
/start
— запуск бота и приветственное сообщение./search <поисковый запрос>
— выполнение поиска по ключевому запросу на LinkedIn, вывод результатов в Telegram и экспорт их в Google Таблицы./help
— описание доступных команд.
- Каждому результату поиска должна быть дана краткая информация:
- Имя пользователя.
- Ссылка на профиль пользователя.
- Название компании.
- Ссылка на профиль компании.
- Почтовый адрес (если доступно).
- Бот должен принимать команды от пользователя через Telegram:
-
Парсинг LinkedIn:
- Использовать linkedin-scraper для получения информации с публичных страниц пользователей и компаний (если доступны).
- Использовать linkedin-api для получения информации о профиле пользователя, включая имя, компанию, позицию и почту (если доступна).
-
Получение данных:
- Для пользователей, чьи страницы доступны:
- Имя и фамилия.
- Профильная ссылка на LinkedIn.
- Компания, где работает пользователь.
- Ссылка на страницу компании.
- Электронная почта (если публично доступна).
- Для пользователей, чьи страницы доступны:
-
Ограничения:
- Параллельное выполнение запросов для ускорения поиска, если возможно.
- Для избежания блокировок необходимо добавить случайные задержки между запросами.
- Отображение ошибки в случае блокировки пользователя или проблемы с запросом.
-
Данные безопасности и конфиденциальности:
- Соблюдать политику конфиденциальности LinkedIn и избегать парсинга данных, которые противоречат их условиям использования.
- Защита данных пользователей (например, пароли) и соблюдение стандартов безопасности для Telegram-ботов.
4. Технические требования
-
Среда разработки:
- Python 3.8 или выше.
- Использование библиотек python-telegram-bot для создания бота.
- Использование linkedin-scraper и linkedin-api для получения данных с LinkedIn.
- Использование Google Sheets API для автоматического экспорта данных в таблицы.
-
Интеграция с Telegram:
- Использование Telegram Bot API для создания и работы с ботом.
- Получение сообщений от пользователей и отправка ответов.
-
Архитектура:
- Парсер должен быть многозадачным, чтобы обрабатывать несколько запросов одновременно, без блокировки аккаунта.
- Реализовать использование баз данных или файлов для хранения временных данных (например, для отслеживания ограничений и очереди запросов).
-
Интеграция с Google Sheets API:
- Для работы с Google Таблицами необходимо использовать OAuth 2.0 для авторизации и доступа к Google Sheets API.
- После получения результатов поиска парсер должен автоматически создать новый лист в Google Таблице, заполнить его соответствующими данными и предоставить ссылку на таблицу пользователю.
5. Этапы разработки
-
Этап 1 — Создание Telegram-бота:
- Настройка Telegram-бота и его интеграция с Python.
- Разработка команд для бота (например,
/start
,/search
,/help
).
-
Этап 2 — Реализация парсера LinkedIn:
- Настройка и тестирование библиотек linkedin-api и linkedin-scraper.
- Реализация логики поиска и извлечения данных из LinkedIn.
- Обработка информации о пользователях и компаниях.
-
Этап 3 — Интеграция с Telegram-ботом:
- Интеграция парсера с Telegram-ботом для отправки результатов поиска.
- Обработка команд и вывод результатов пользователю.
- Интеграция с Google Sheets API для автоматического экспорта данных.
-
Этап 4 — Тестирование:
- Проведение тестирования бота на различных данных и исправление ошибок.
- Проверка работы бота в условиях ограничений и капч.
-
Этап 5 — Развертывание и поддержка:
- Развертывание бота на сервере или в облаке.
- Обеспечение стабильной работы и мониторинг.
6. Дополнительные требования
- Возможность доработки бота с добавлением новых функций.
- Оптимизация скорости работы бота и парсера для эффективного получения данных.
- Предоставление отчётов о работе бота в случае возникновения ошибок или блокировок.
7. Ожидаемые результаты
- Рабочий Telegram-бот, который позволяет искать информацию на LinkedIn и экспортировать данные в Google Таблицы.
- Результаты поиска, включающие имя пользователя, ссылку на профиль, компанию, ссылку на компанию и почту (если доступно), экспортируются в таблицу.