LinkedIn Domain Checker через Google + AdsPower
---
Цель:
Создать чекер, который:
1. Ищет компании на LinkedIn по доменам — через Google (а не встроенный поиск LinkedIn)
2. Переходит на страницу компании
3. Проверяет:
- Совпадение домена
- Наличие верификации (Verified Page и дата)
---
Язык:
- Node.js (с puppeteer) или Python (с playwright-async)
- Обязательно: WebSocket-интеграция с AdsPower
- Работа в несколько потоков через AdsPower-профили
---
Вход:
- `domains.txt` — список доменов (по одному на строку)
- `config.json`:
```json
{
"adspower_api": "
local.adspower.net:50325",
"profiles": ["k109syyt", "k10abc", "k10xyz"],
"domains_per_profile": 400,
"delay_range_sec": [1.5, 3.5],
"output_csv": "results.csv",
}
```
---
Как работает:
1. Загружаем список доменов и распределяем на AdsPower-профили (до 400 на каждый).
2. Для каждого домена:
- Выполняем Google-запрос:
```
site:linkedin.com/company "example.com"
```
или
```
example.com linkedin
```
- Ищем ссылку на профиль компании (вида
www.linkedin.com/company/... - Если найдено — переходим на LinkedIn-страницу этой компании
- Далее парсим:
---
Проверка профиля:
1. Ищем блок Website извлекаем ссылку
2. Сравниваем с оригинальным доменом (нормализуем оба):
- удаляем `http://`, `https://`, `www.`
- отсекаем всё после `/`
- игнорируем регистр
Совпадение засчитывается, если базовый домен совпадает
3. Проверяем наличие блока `Verified page` и дату, если есть
4. Пишем результат
---
Вывод:
- `domain`, `company_name`, `company_url`, `verified (yes/no)`, `website_match (yes/no)`, `verified_date`, `used_profile`
- CSV
---
Важно:
- Можно использовать либо обычный Google-поиск через Selenium, либо SERP API (опционально)
- При использовании SERP API — добавьте ключ `serpapi_key` в `config.json`
- Если ключ не указан, используется поиск через Selenium (ручной)
- Работа через AdsPower с DevTools WS
- Не больше 3–5 активных потоков одновременно (1 профиль = 1 поток)
- Делать задержки между действиями (random sleep + прокрутка)
- В случае ошибок — логировать, не падать
- Продолжать выполнение при обрывах и timeouts
---
Зависимости:
- Python: `playwright`, `websocket-client`, `requests`, `beautifulsoup4`
- Node.js: `puppeteer-core`, `ws`, `axios`, `cheerio` и т.д.
---
Пример профилей:
- AdsPower API:
local.adspower.net:50325`
- Профили: `k109syyt`, `k10abc`, `k10xyz`, ...
---
Приложены примеры страниц:
- Пример верифицированной страницы (галочка + дата)
- Пример совпадения домена в разделе Website
- Пример успешного поиска через Google вместо LinkedIn
---
config.json:
```json
{
"adspower_api": "
local.adspower.net:50325",
"profiles": ["k109syyt", "k10abc", "k10xyz"],
"domains_per_profile": 400,
"delay_range_sec": [1.5, 3.5],
"output_csv": "results.csv",
"serpapi_key": "57eb0fe7747026db13b412c3718f37793c63706b9f816efdfcb7ff7c0d00d151" // <--- опционально
}
```
Если поле `serpapi_key` отсутствует или пустое — используется поиск через обычный Google вручную.
!!ТЗ было написано с помощью чатбота, могут быть неточности, но вроде все проверил, должно быть все правильно. Если будут вопросы уточняйте.