
Инструмент для перечисления LinkedIn для извлечения действительных имен сотрудников из организации через парсинг поисковых систем.
CrossLinked — это инструмент для перечисления сотрудников LinkedIn, который использует сбор данных через поисковые системы для получения действительных имен сотрудников организации. Этот метод обеспечивает точные результаты без необходимости использования ключей API, учетных данных или прямого доступа к LinkedIn!
Установите последнюю стабильную версию из PyPi:
pip3 install crosslinked
Установите и запустите последнюю версию кода с помощью Poetry:
git clone https://github.com/m8sec/crosslinked
cd crosslinked
poetry install
poetry run crosslinked -h
Установите последнюю версию кода из GitHub:
git clone https://github.com/m8sec/crosslinked
cd crosslinked
pip3 install .
CrossLinked предполагает, что соглашение об именовании учетных записей организации уже определено. Это необходимо для выполнения и должно быть добавлено в аргументы командной строки в соответствии с ожидаемым результатом. См. разделы Формат именования и Пример использования ниже:
{first}.{last} = john.smith
CMP\{first}{l} = CMP\johns
{f}{last}@company.com = [email protected]
🦖 Всё еще застряли? Метаданные — это всегда хорошее место для поиска скрытой информации, такой как соглашение об именовании учетных записей. Подробнее см. PyMeta.
💥 Новая функция 💥
Для совместимости с альтернативными соглашениями об именовании CrossLinked позволяет пользователям управлять индексной позицией имени, извлеченного из поискового текста. Если имя недостаточно длинное или возникают ошибки с поисковым запросом, CrossLinked вернется к формату по умолчанию.
Примечание: массив поисковой строки начинается с 0. Отрицательные числа также можно использовать для подсчета с конца, начиная с последнего значения.
# Вывод по умолчанию
python3 crosslinked.py -f '{first}.{last}@company.com' Company
John David Smith = [email protected]
# Использование предпоследнего имени в качестве "last"
python3 crosslinked.py -f '{0:first}.{-2:last}@company.com' Company
John David Smith = [email protected]
Jane Doe = [email protected]
# Использование второго элемента массива в качестве "last"
python3 crosslinked.py -f '{first}.{1:last}@company.com' Company
John David Smith = [email protected]
Jane Doe = [email protected]
По умолчанию CrossLinked использует поисковые системы google и bing для определения сотрудников целевой организации. После выполнения в текущем каталоге появятся два файла (names.txt и names.csv), если не изменено в аргументах командной строки.
python3 crosslinked.py -f '{first}.{last}@domain.com' company_name
python3 crosslinked.py -f 'domain\{f}{last}' -t 15 -j 2 company_name
⚠️ Для лучших результатов используйте название компании, как оно отображается в LinkedIn:
"Target Company", а не доменное имя.

Соглашение об именовании учетных записей изменилось после выполнения, и теперь вы получаете CAPTCHA-запросы? Не проблема!
CrossLinked включает выходной файл names.csv, в котором хранятся все собранные данные, включая: name, job title и url. Эти данные можно загрузить и обработать для переформатирования учетных записей по мере необходимости.
python3 crosslinked.py -f '{f}{last}@domain.com' names.csv

Последняя версия CrossLinked поддерживает прокси для ротации исходных адресов. Пользователи могут указать один прокси с помощью --proxy 127.0.0.1:8080 или несколько через --proxy-file proxies.txt.
> cat proxies.txt
127.0.0.1:8080
socks4://111.111.111.111
socks5://222.222.222.222
> python3 crosslinked.py --proxy-file proxies.txt -f '{first}.{last}@company.com' -t 10 "Company"
⚠️
HTTP/Sпрокси можно добавлять в формате IP:Port. Однако для socks-прокси потребуется префиксsocks4://илиsocks5://.*
positional arguments:
company_name Имя целевой компании
optional arguments:
-h, --help Показать справку и выйти
-t TIMEOUT Максимальное время ожидания на один поиск (по умолчанию=15)
-j JITTER Джиттер между запросами (по умолчанию=1)
Search arguments:
--search ENGINE Поисковая система (по умолчанию='google,bing')
Output arguments:
-f NFORMAT Формат имен, например: 'domain\{f}{last}', '{first}.{last}@domain.com'
-o OUTFILE Изменить имя выходного файла (без расширения)
Proxy arguments:
--proxy PROXY Прокси-запросы (IP:Port)
--proxy-file PROXY Загрузить прокси из файла для ротации
Внесите свой вклад в проект, выполнив следующие действия: