
Python-библиотека для точного запроса использования имени пользователя и электронной почты на онлайн-платформах
socialscan предлагает точные и быстрые проверки использования адресов электронной почты и имен пользователей на онлайн-платформах.
Получив адрес электронной почты или имя пользователя, socialscan сообщает, доступен ли он, занят или недействителен на онлайн-платформах.
Особенности, которые отличают socialscan от аналогичных инструментов (например, knowem.com, Namechk и Sherlock):
100% точность: метод запросов socialscan устраняет ложные срабатывания и пропуски, которые часто возникают в аналогичных инструментах, гарантируя, что результаты всегда точны.
Скорость: socialscan использует asyncio вместе с aiohttp для параллельного выполнения всех запросов, обеспечивая быстрый поиск даже при массовых запросах, включающих сотни имен пользователей и адресов электронной почты. На тестовом компьютере со средними характеристиками и скоростью интернета 100 запросов были выполнены за ~4 секунды.
Библиотека / CLI: socialscan можно запускать через CLI или импортировать как библиотеку Python для использования с существующим кодом.
Поддержка email: socialscan поддерживает запросы как для адресов электронной почты, так и для имен пользователей.
В настоящее время поддерживаются следующие платформы:

Другие подобные инструменты проверяют доступность имени пользователя, запрашивая страницу профиля этого имени пользователя, и на основе такой информации, как HTTP-статус код или текст ошибки на запрошенной странице, определяют, занято ли имя пользователя. Это наивный подход, который не работает в следующих случаях:
Зарезервированные ключевые слова: Большинство платформ имеют набор ключевых слов, которые они не разрешают использовать в именах пользователей
(Простой тест: попробуйте проверить зарезервированные слова, такие как 'admin' или 'home' или 'root', и посмотрите, отмечают ли их другие сервисы как доступные)
Удаленные/заблокированные аккаунты: Имена пользователей удаленных/заблокированных аккаунтов часто недоступны, даже если страницы профиля могут не существовать
Поэтому эти инструменты часто выдают ложные срабатывания и пропуски. Этот метод проверки также зависит от наличия у платформ веб-страниц профилей и не может быть расширен на адреса электронной почты.
socialscan стремится заполнить эти пробелы, напрямую запрашивая серверы регистрации платформ, получая соответствующие CSRF-токены, заголовки и куки.
> pip install socialscan
> git clone https://github.com/iojw/socialscan.git
> cd socialscan
> pip install .
usage: socialscan [list of usernames/email addresses to check]
optional arguments:
-h, --help show this help message and exit
--platforms [platform [platform ...]], -p [platform [platform ...]]
list of platforms to query (default: all platforms)
--view-by {platform,query}
view results sorted by platform or by query (default:
query)
--available-only, -a only print usernames/email addresses that are
available and not in use
--cache-tokens, -c cache tokens for platforms requiring more than one
HTTP request (Snapchat, GitHub, Instagram. Lastfm &
Tumblr), reducing total number of requests sent
--input input.txt, -i input.txt
file containg list of queries to execute
--proxy-list proxy_list.txt
file containing list of HTTP proxy servers to execute
queries with
--verbose, -v show query responses as they are received
--show-urls display profile URLs for usernames on supported platforms
(profiles may not exist if usernames are reserved or belong to deleted/banned accounts)
--json json.txt output results in JSON format to the specified file
--version show program's version number and exit
socialscan также можно импортировать в существующий код и использовать как библиотеку.
v1.0.0 вводит асинхронный метод execute_queries и соответствующий синхронный обёртку sync_execute_queries, который принимает список запросов и необязательный список платформ и прокси, выполняя все запросы одновременно. Метод затем возвращает список результатов в том же порядке.
from socialscan.util import Platforms, sync_execute_queries
queries = ["username1", "[email protected]", "[email protected]"]
platforms = [Platforms.GITHUB, Platforms.LASTFM]
results = sync_execute_queries(queries, platforms)
for result in results:
print(f"{result.query} on {result.platform}: {result.message} (Success: {result.success}, Valid: {result.valid}, Available: {result.available})")
Вывод:
username1 on GitHub: Username is already taken (Success: True, Valid: True, Available: False)
username1 on Lastfm: Sorry, this username isn't available. (Success: True, Valid: True, Available: False)
[email protected] on GitHub: Available (Success: True, Valid: True, Available: True)
[email protected] on Lastfm: Sorry, that email address is already registered to another account. (Success: True, Valid: True, Available: False)
[email protected] on GitHub: Available (Success: True, Valid: True, Available: True)
[email protected] on Lastfm: Looking good! (Success: True, Valid: True, Available: True)
Для массовых запросов с опцией --input поместите одно имя пользователя/email на каждой строке в .txt файле:
username1
[email protected]
username3
Если вы считаете этот инструмент полезным и хотите поддержать его дальнейшее развитие, вы можете сделать пожертвование здесь. Спасибо за вашу поддержку.
BTC: bc1qwrnukyc6xh9aygu5ps2geh8stmvagsj5u4v7j6
ETH: 0x45a0F91666391078eA521A6123559E49DAb1275f
Ошибки, предложения или хотите добавить сайт? Создайте задачу.
PRs всегда приветствуются 🙂
Пожалуйста, убедитесь, что код отформатирован с помощью black с использованием конфигурации в pyproject.toml перед отправкой PR.
MPL 2.0
| Имя пользователя | Электронная почта |
|---|
| ✔️ | ✔️ | |
| ✔️ | ✔️ | |
| GitHub | ✔️ | ✔️ |
| Tumblr | ✔️ | ✔️ |
| Lastfm | ✔️ | ✔️ |
| Snapchat | ✔️ | |
| GitLab | ✔️ | |
| ✔️ | ||
| Yahoo | ✔️ | |
| ✔️ | ||
| Firefox | ✔️ |