- 20.06.2022
- 28 426
- 235
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1
Суть
Для начала устанавливаем библиотеки для парсинга и самого чека (также beauty улучшение):
Код:
pip install bs4 requests tqdm
Отлично, теперь нам надо узнать, как чекать. Я сделал так. Открыл Fragment.

Ввел свой юзернейм и меня перебросило на .

а если перейти по кнопке юзернейма, то откроется .

Я подумал, что если поставить желаемый юзер в , то нас перенесет на страницу покупки.
Возьмем юзернейм, который никто бы не выбрал. Например @csdjkhhbchsbdjch. Таким образом, наша ссылка будет выглядеть так: . Она перенесет нас на .
О чем это говорит? Только что, мы с вами поняли, что если юзернейм свободный, то нас переносит на .
Приступаем к написанию кода.
Импортируем нужные библиотеки:
Код:
pip install bs4 requests tqdm
from bs4 import BeautifulSoup # сам парс
import requests # запросы
from tqdm import tqdm # для бара
from concurrent.futures import ThreadPoolExecutor, Executor # многопоточность
import time # для времени
Теперь напишем сам класс чекера:
Код:
class UserName():
def __init__(self, lines: list, threads: int) -> None:
self.lines = lines # строчки
self.threads = threads # колво потоков
self.result = [] # результаты
def run(self): # запуск
total_lines = len(self.lines) # колво строк
with ThreadPoolExecutor(max_workers=self.threads) as executor: # модуль для потоков
list(tqdm(executor.map(self.parse, self.lines), total=total_lines, ascii=True, desc=" Check ")) # сам чек с визуализацией
def parse(self, name): # сам парсинг
name = name.strip() # удаляем лишние пробелы
self.r = requests.get(f"https://fragment.com/username/{name}") # кидаем запрос на url
if self.r.url == f"https://fragment.com/?query={name}": # про то что я вам говорил
self.result.append(f" Username @{name} | Free\n")
return # просто пустой возврат чтобы код не продолжал работу
else: # если у нас не идет переброс на другой юрл
try:
bs = BeautifulSoup(self.r.text, "lxml") # парсим сайт
res = bs.find("span", "tm-section-header-status").text # ищем текст внутри маленького окошка
if res.lower() in ["sold", "available", "taken"]: # проверяем текст
self.result.append(f" Username @{name} | {res}\n") # добавляем результат
return
except:
self.result.append(f" Username @{name} | Unknown error\n") # просто обработка ошибок
Все расписано в комментах к коду

А теперь переходим к самому интерфейсу и запуску:
Код:
def main():
start_time = time.time() # для подсчета времени
_lines = input(" Загрузи файл со строками: ")
_lines2 = input(" Загрузи файл со строками для результата: ")
threads = input(" Введи кол-во потоков: ")
lines = open(_lines, "r").readlines()
checker = UserName(lines, int(threads))
checker.run() # запуск чекера
open(_lines2, "w").writelines(checker.result) # запись результата в файл
print(f" Lead time: {time.time() - start_time}")
main()
Последние темы в этом разделе:
- [Евгений Шилов] Чистый код на 1С (2024)
- [Максим Иванов] [Stepik] Основы написания bash-скриптов (2025)
- [Адиль Кудьяров, Константин Соболевский, Вера Жарова] [klerk] Аналитик 1C (2025)
- [Udemy] Освоение продвинутого Scrum - реальные сценарии и решения (2024)
- [Валерий Никаноров] [stepik] Нейронные сети: Основы глубокого обучения с нуля (2025)
- [Елена Кантонистова] [stepik] Временные ряды для прогноза криптовалют (2025)
- [Матвей Чудневцев, Михаил Новичихин] [Stepik] Docker простым языком (2025)
- [Udemy] [Bogdan Stashchuk] VS Code - Курс по Редактору Кода Visual Studio Code (2025)
- [Таня Румянцева] [Neirocoder] Готовые схемы автоматизации n8n.io и make.com (2025)
- [Udemy] [Андрей Кудлай] СУБД MySQL и язык запросов SQL. Теория и практика (2023)