Автоматизация пошука просроченных доменов через Python
Опублікував Peter Nagy · За допомогою ШІ · 8 серпня 2026 р. · 5 хв читання
Автоматизированный поиск просроченных доменов - это замена ручного обновления списков на Python-скрипт, который опрашивает дроп-листы, фильтрует по метрикам и присылает оповещения. Используются requests, BeautifulSoup и простой cron. Без изысков, но часы превращаются в минуты. А если попался неудачный домен, его всегда можно похоронить позже.
Что именно делает автоматизированный поиск просроченных доменов?
Он превращает скучную повторяющуюся задачу в скрипт, который работает сам. Вы пишете код на Python, который загружает списки просроченных доменов из открытых источников, проверяет каждый по вашим правилам и отправляет сообщение, когда находится подходящий. Больше не нужно просыпаться в 3 часа ночи, чтобы проверить, освободился ли наконец тот 4-буквенный .io.
Основной цикл прост: загрузка, фильтрация, оповещение. Запускать можно на дешёвом VPS или на своём компьютере через cron. Всё собирается за вечер, даже если вы не профессиональный разработчик.
Что нужно знать перед написанием скрипта?
Пара базовых вещей. Нужен Python 3.8 или новее и текстовый редактор. Также потребуется бесплатный аккаунт в сервисе API доменов, например WhoisXMLAPI или RDAP, чтобы проверять даты регистрации. На этом этапе бюджет - ноль долларов, если не хотите платить за более высокие лимиты.
Также нужен чёткий фильтр. Знайте, что ищете: количество слов, длина, расширение, обратные ссылки или конкретную нишу. Запишите это до того, как начнёте кодить, иначе скрипт будет оповещать вас о каждом случайном домене в интернете.
Шаг 1: Как загружать списки просроченных доменов?
Начните с публичных дроп-листов. Сервисы вроде ExpiredDomains.net и NameJet публикуют ежедневные списки, хотя их не всегда легко парсить. Используйте requests и BeautifulSoup, чтобы получить HTML и разобрать строки таблицы.
import requests
from bs4 import BeautifulSoup
url = "https://www.expireddomains.net/expired-domains/"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
Это даёт сырую страницу. Затем извлекаете имена доменов из таблицы. Большинство списков имеют похожую структуру, так что пара вызовов find_all сделает своё дело. Соблюдайте лимиты запросов, иначе вас заблокируют.
Шаг 2: Как фильтровать домены с помощью Python?
Фильтры - это где происходит магия. Напишите функцию, которая принимает домен и возвращает True или False на основе ваших правил. Например, вы можете захотеть только .com домены ровно из 6 букв без дефисов.
def is_worth_checking(domain):
name, ext = domain.split(".")
return ext == "com" and len(name) == 6 and "-" not in name
Также можно фильтровать по списку ключевых слов. Если вы охотитесь за фитнес-доменами, составьте список релевантных слов и проверяйте их наличие. Используйте re для регулярных выражений, если нужны более сложные шаблоны.
Шаг 3: Как проверять доступность и метрики домена?
После фильтрации нужно узнать, действительно ли домен истекает. Используйте RDAP для проверки статуса регистрации. Библиотека rdap делает это легко.
import rdap
def check_status(domain):
data = rdap.query(domain)
return data.get("status", [])
Если статус содержит "pending delete" или "redemption period", домен, скорее всего, истекает. Также можно проверить обратные ссылки с помощью бесплатного API, например Open PageRank, но понадобится ключ. Держите проверки лёгкими, иначе слишком много запросов замедлят работу.
Шаг 4: Как настроить автоматический запуск скрипта?
Используйте cron на Linux или Task Scheduler на Windows. Запускайте скрипт раз в день или каждые несколько часов, если гоняетесь за горячими дропами. Пример строки cron:
0 6 * * * cd /path/to/script && python3 hunt.py
Это запускает скрипт каждое утро в 6 утра. Результаты будут до ежедневной суеты. Также можно использовать библиотеку schedule, если хотите всё держать в Python.
Шаг 5: Как получать оповещения при совпадении?
Email, Telegram или Slack. Проще всего Telegram - можно отправить сообщение простым POST-запросом. Создайте бота, получите ID чата и используйте requests.post, чтобы отправить сообщение, когда фильтр находит что-то.
import requests
def send_alert(domain):
token = "YOUR_BOT_TOKEN"
chat_id = "YOUR_CHAT_ID"
text = f"Found: {domain}"
url = f"https://api.telegram.org/bot{token}/sendMessage"
requests.post(url, data={"chat_id": chat_id, "text": text})
Теперь вы получаете уведомления на телефон, не прикасаясь к скрипту. Только не забудьте держать токен бота в секрете.
Шаг 6: Как обрабатывать результаты и решать, что покупать?
Когда приходит оповещение, всё равно нужно делать ручные проверки. Используйте регистратора вроде Namecheap или GoDaddy, чтобы узнать точную цену, и проверьте Wayback Machine на наличие исторического контента. Не каждый просроченный домен стоит регистрационной платы.
Если вы купили домен, а он оказался неудачным, можно похоронить свой мёртвый проект за доллар. Это дешёвый способ отпустить. А если ищете вдохновение или выгодную покупку, загляните на кладбище, чтобы увидеть, что другие бросили.
Что может пойти не так при автоматизированном поиске?
Многое. Скрипт может сломаться, когда сайт изменит HTML-структуру. Вас могут ограничить по скорости или заблокировать по IP. Вы можете слишком агрессивно фильтровать и пропустить хорошие имена, или слишком слабо и утонуть в мусоре.
Кроме того, рынок доменов движется быстро. Имя, которое выглядит свободным, может быть зарегистрировано кем-то другим до того, как сработает ваш cron. Это нормально. Встройте повторную попытку или ожидание и не привязывайтесь к конкретному домену.
Действительно ли нужно автоматизировать это?
Если вы проверяете дропы раз в неделю - нет. Но если вы обновляете списки ежедневно, скрипт экономит часы. Также он позволяет действовать быстрее, когда появляется хорошее имя. Скорость важна в охоте за просроченными доменами, потому что хорошие имена исчезают за минуты.
Минус в том, что автоматизация может создать иллюзию продуктивности. Но это не так. Вы просто фильтруете быстрее. Настоящая работа всё ещё в ручной проверке.
Куда двигаться дальше?
Начните с малого. Выберите один источник, один фильтр и один способ оповещения. Добейтесь, чтобы это работало, прежде чем добавлять сложность. Затем расширяйтесь на больше источников или фильтров. Скрипт не обязан быть идеальным, он должен просто работать.
И если в итоге у вас окажется ненужный домен, не дайте ему гнить. Похороните его на dead.domains и дайте кому-то другому шанс на вторую жизнь. Это цикл цифровой собственности, и в нём есть своя странная привлекательность.
Загляните на dead.domains, чтобы увидеть, что уже похоронено.
FAQ
Законно ли парсить списки просроченных доменов?
Да, если соблюдать robots.txt и лимиты запросов. Публичные списки предназначены для просмотра, но слишком быстрый парсинг может привести к блокировке. Используйте разумные задержки и правильный user-agent. Если у сайта есть платный API, рассмотрите его использование, чтобы избежать юридических проблем.
Какая лучшая Python-библиотека для парсинга HTML?
BeautifulSoup - самый популярный выбор, потому что он прост в изучении и хорошо работает с неаккуратным HTML. Для более сложного парсинга можно использовать lxml или Scrapy. Начните с BeautifulSoup и переключайтесь только когда упрётесь в ограничения производительности.
Как часто запускать скрипт для просроченных доменов?
Обычно достаточно раза в день для большинства ниш. Если вы гоняетесь за дорогими дропами, запускайте каждые несколько часов. Имейте в виду, что более частый запуск увеличивает риск ограничения скорости, так что балансируйте скорость и безопасность.
Можно ли автоматизировать весь процесс покупки?
Частично. Можно автоматизировать проверку доступности и даже предзаказ, но сама регистрация обычно требует ручного подтверждения. Некоторые регистраторы предлагают API для автоматических покупок, но часто требуют минимальный баланс или одобрение. Не ждите полностью автономного конвейера.
Что делать, если скрипт перестал работать?
Сначала проверьте HTML-структуру сайта. Сайты часто меняют макеты, поэтому ваши селекторы могут сломаться. Добавьте в скрипт обработку ошибок, чтобы он логировал проблему и оповещал вас. Затем обновите селекторы и запустите снова. Это обычная задача по обслуживанию.