← Powrót do Biura Nekrologów

Automatyczne polowanie na wygasające domeny w Pythonie

Opublikował Peter Nagy · Z pomocą AI · 8 sierpnia 2026 · 5 min czytania

Automatyczne polowanie na wygasające domeny zastępuje ręczne odświeżanie list skryptem w Pythonie, który pobiera listy dropów, filtruje według kryteriów i wysyła powiadomienia. Użyjesz bibliotek requests, BeautifulSoup i prostego cron-a. To nie jest skomplikowane, ale zamienia godziny w minuty. A jeśli trafisz na bubel, zawsze możesz go potem pogrzebać.

Co dokładnie robi automatyczne polowanie na wygasające domeny?

Zamienia nudne, powtarzalne zadanie w skrypt, który działa sam. Piszesz kod w Pythonie, który pobiera listy wygasających domen z publicznych źródeł, sprawdza każdą nazwę według twoich reguł i wysyła wiadomość, gdy coś pasuje. Koniec ze wstawaniem o 3 nad ranem, żeby sprawdzić, czy w końcu wypadło to 4-literowe .io.

Główna pętla jest prosta: pobierz, przefiltruj, powiadom. Możesz uruchomić to na tanim VPS-ie lub własnym komputerze przez cron-a. Całość da się złożyć w jedno popołudnie, nawet jeśli nie jesteś zawodowym programistą.

Wymagania: czego potrzebujesz przed napisaniem skryptu?

Kilku podstaw. Potrzebujesz Pythona w wersji 3.8 lub nowszej oraz edytora tekstu. Przyda się też darmowe konto w serwisie API do domen, jak WhoisXMLAPI lub RDAP, żeby sprawdzać daty rejestracji. Na tym etapie wydasz zero złotych, chyba że chcesz płacić za wyższe limity zapytań.

Potrzebujesz też jasnego filtra. Wiedz, czego szukasz: liczba słów, długość, rozszerzenie, linki zwrotne, konkretna nisza. Zapisz to przed pisaniem kodu, bo skończysz ze skryptem, który będzie ci wysyłał alerty o każdym przypadkowym adresie w sieci.

Krok 1: jak pobrać listy wygasających domen?

Zacznij od publicznych list dropów. Serwisy takie jak ExpiredDomains.net i NameJet publikują codzienne listy, choć nie zawsze łatwo je zeskrobać. Użyj requests i BeautifulSoup, żeby ściągnąć HTML i sparsować wiersze tabeli.

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")

To daje ci surową stronę. Potem wyciągasz nazwy domen z tabeli. Większość list ma podobną strukturę, więc kilka wywołań find_all załatwi sprawę. Uważaj na limity zapytań, bo możesz zostać zablokowany.

Krok 2: jak filtrować domeny w Pythonie?

Filtry to sedno. Napisz funkcję, która przyjmuje domenę i zwraca True lub False na podstawie twoich reguł. Na przykład, chcesz tylko domeny .com dokładnie z 6 literami i bez myślników.

def is_worth_checking(domain):
    name, ext = domain.split(".")
    return ext == "com" and len(name) == 6 and "-" not in name

Możesz też filtrować po liście słów kluczowych. Jeśli polujesz na domeny fitness, trzymaj listę odpowiednich słów i sprawdzaj, czy któreś występuje. Użyj re do dopasowywania regex, jeśli potrzebujesz bardziej złożonych wzorców.

Krok 3: jak sprawdzić dostępność i metryki domeny?

Po przefiltrowaniu listy musisz wiedzieć, czy domena faktycznie wygasa. Użyj RDAP, żeby sprawdzić status rejestracji. Biblioteka rdap ułatwia to.

import rdap

def check_status(domain):
    data = rdap.query(domain)
    return data.get("status", [])

Jeśli status zawiera "pending delete" lub "redemption period", domena prawdopodobnie wygasa. Możesz też sprawdzić linki zwrotne przez darmowe API, np. Open PageRank, ale będziesz potrzebować klucza API. Utrzymuj zapytania lekkie, bo zbyt wiele spowolni działanie.

Krok 4: jak zaplanować automatyczne uruchamianie skryptu?

Użyj cron-a na Linuxie lub Task Schedulera na Windowsie. Uruchamiaj skrypt raz dziennie lub co kilka godzin, jeśli polujesz na gorące dropy. Przykładowa linijka w cronie:

0 6 * * * cd /ścieżka/do/skryptu && python3 hunt.py

To uruchamia skrypt codziennie o 6 rano. Wyniki dostaniesz przed porannym pośpiechem. Możesz też użyć biblioteki schedule, jeśli wolisz wszystko trzymać w Pythonie.

Krok 5: jak otrzymywać powiadomienia o znalezionych domenach?

Email, Telegram lub Slack. Najprostszy jest Telegram, bo wiadomość wysyłasz przez prosty POST. Stwórz bota, pobierz ID czatu i użyj requests.post, żeby wysłać wiadomość, gdy filtr znajdzie coś ciekawego.

import requests

def send_alert(domain):
    token = "TWOJ_TOKEN_BOTA"
    chat_id = "TWOJ_ID_CZATU"
    text = f"Znaleziono: {domain}"
    url = f"https://api.telegram.org/bot{token}/sendMessage"
    requests.post(url, data={"chat_id": chat_id, "text": text})

Teraz dostajesz pingi na telefon bez dotykania skryptu. Pamiętaj tylko, żeby trzymać token bota w tajemnicy.

Krok 6: jak obsłużyć wyniki i zdecydować, co kupić?

Gdy przyjdzie alert, nadal musisz ręcznie sprawdzić. Użyj rejestratora jak Namecheap lub GoDaddy, żeby zobaczyć dokładną cenę, i sprawdź Wayback Machine pod kątem historycznej treści. Nie każda wygasająca domena jest warta opłaty rejestracyjnej.

Jeśli kupisz i okaże się bublem, możesz pogrzebać swój martwy projekt za dolara. To tani sposób, żeby odpuścić. A jeśli szukasz inspiracji lub okazji, przejrzyj cmentarzysko, żeby zobaczyć, co inni porzucili.

Co może pójść nie tak przy automatycznym polowaniu?

Wiele. Skrypt może się zepsuć, gdy strona zmieni strukturę HTML. Możesz trafić na limit zapytań lub dostać blokadę IP. Możesz filtrować zbyt agresywnie i przegapić dobre nazwy, albo za luźno i utonąć w śmieciach.

Poza tym rynek domen jest szybki. Nazwa, która wygląda na wolną, może zostać zarejestrowana przez kogoś innego, zanim twój cron się uruchomi. To normalne. Dodaj mechanizm ponawiania lub oczekiwania i nie przywiązuj się do żadnej domeny.

Czy naprawdę potrzebujesz automatyzacji?

Jeśli sprawdzasz dropy raz w tygodniu, nie. Ale jeśli odświeżasz listy codziennie, skrypt oszczędza godziny. Pozwala też działać szybciej, gdy pojawi się dobra nazwa. Szybkość ma znaczenie w polowaniu na wygasające domeny, bo dobre nazwy znikają w ciągu minut.

Minus jest taki, że automatyzacja może uśpić czujność i sprawić, że pomyślisz, iż jesteś produktywny. Nie jesteś. Tylko szybciej filtrujesz. Prawdziwa praca to wciąż ręczny przegląd.

Co dalej?

Zacznij od małego. Wybierz jedno źródło, jeden filtr i jedną metodę powiadamiania. Uruchom to, zanim dodasz komplikacje. Potem rozszerz o więcej źródeł lub filtrów. Skrypt nie musi być idealny, ma po prostu działać.

A jeśli skończysz z domeną, której nie chcesz, nie pozwól jej gnić. Pogrzeb ją na dead.domains i daj komuś drugą szansę. To cykl cyfrowej własności i dziwnie satysfakcjonujący.

Zajrzyj na dead.domains, żeby zobaczyć, co już zostało pogrzebane.

FAQ

Czy skrobanie list wygasających domen jest legalne?

Tak, o ile szanujesz robots.txt i limity zapytań. Publiczne listy są przeznaczone do przeglądania, ale zbyt szybkie skrobanie może skutkować blokadą. Stosuj rozsądne opóźnienia i odpowiedni user-agent. Jeśli strona ma płatne API, rozważ jego użycie, by uniknąć problemów prawnych.

Jaka jest najlepsza biblioteka Pythona do parsowania HTML?

BeautifulSoup jest najpopularniejsza, bo łatwa do nauki i dobrze radzi sobie z niechlujnym HTML. Do bardziej złożonego parsowania możesz użyć lxml lub Scrapy. Zacznij od BeautifulSoup i zmień tylko wtedy, gdy osiągniesz limit wydajności.

Jak często powinienem uruchamiać skrypt do wygasających domen?

Raz dziennie zwykle wystarcza dla większości nisz. Jeśli polujesz na wartościowe dropy, uruchamiaj co kilka godzin. Pamiętaj, że częstsze uruchomienia zwiększają ryzyko blokady, więc balansuj szybkość z bezpieczeństwem.

Czy mogę zautomatyzować cały proces zakupu?

Częściowo. Możesz zautomatyzować sprawdzanie dostępności, a nawet zamawianie, ale faktyczna rejestracja zwykle wymaga ręcznego potwierdzenia. Niektórzy rejestratorzy oferują API do automatycznych zakupów, ale często wymagają minimalnego salda lub zatwierdzenia. Nie oczekuj w pełni zautomatyzowanego procesu.

Co zrobić, jeśli mój skrypt przestanie działać?

Najpierw sprawdź strukturę HTML strony. Strony często zmieniają układ, więc twoje selektory mogą przestać działać. Dodaj obsługę błędów do skryptu, aby logował problem i powiadamiał cię. Potem zaktualizuj selektory i uruchom ponownie. To normalna konserwacja.