Automatisert jakt på utløpte domener med Python
Publisert av Peter Nagy · KI-assistert · 8. august 2026 · 5 min lesing
Automatisert jakt på utløpte domener betyr at du bytter ut manuell oppdatering med et Python-skript som henter lister, filtrerer etter kriterier og sender deg varsel. Du bruker requests, BeautifulSoup og en enkel cron-jobb. Ikke avansert, men det gjør timer om til minutter. Og hvis du ender opp med et dårlig domene, kan du alltids begrave det senere.
Hva gjør automatisert jakt på utløpte domener egentlig?
Det gjør en kjedelig oppgave til et sett-og-glem-skript. Du skriver Python-kode som henter lister over utløpte domener fra offentlige kilder, sjekker hvert navn mot dine regler, og sender deg en melding når noe matcher. Slutt å våkne klokka 03 om natta for å se om det 4-bokstavers .io-domenet endelig er ledig.
Kjernen er enkel: hent, filtrer, varsle. Du kan kjøre det på en billig VPS eller din egen maskin med en cron-jobb. Hele greia kan bygges på en ettermiddag, selv om du ikke er en proff utvikler.
Forutsetninger: Hva trenger du før du skriver skriptet?
Noen få ting. Du trenger Python 3.8 eller nyere installert, pluss en teksteditor. Du trenger også en gratis konto hos en domene-API-tjeneste som WhoisXMLAPI eller RDAP for å sjekke registreringsdatoer. Budsjett null kroner for dette trinnet, med mindre du vil betale for høyere grenser.
Du trenger også et klart filter. Vit hva du jakter på: antall ord, lengde, endelse, tilbakekoblinger, eller en spesifikk nisje. Skriv det ned før du koder, ellers ender du opp med et skript som varsler deg om hvert eneste tilfeldige domene på internett.
Trinn 1: Hvordan henter du lister over utløpte domener?
Start med offentlige dropplister. Tjenester som ExpiredDomains.net og NameJet publiserer daglige lister, men de er ikke alltid lette å skrape. Bruk requests og BeautifulSoup for å hente HTML-en og parse tabellradene.
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")
Det gir deg råsiden. Deretter henter du ut domenenavnene fra tabellen. De fleste lister har en lignende struktur, så noen find_all-kall fikser biffen. Vær høflig med hastighetsbegrensninger, ellers blir du blokkert.
Trinn 2: Hvordan filtrerer du domener med Python?
Filtre er der magien skjer. Skriv en funksjon som tar et domene og returnerer True eller False basert på dine regler. For eksempel vil du kanskje bare ha .com-domener med nøyaktig 6 bokstaver og ingen bindestrek.
def is_worth_checking(domain):
name, ext = domain.split(".")
return ext == "com" and len(name) == 6 and "-" not in name
Du kan også filtrere etter nøkkelordlister. Hvis du jakter på treningsdomener, hold en liste over relevante ord og sjekk om noen dukker opp. Bruk re for regex-matching hvis du trenger mer komplekse mønstre.
Trinn 3: Hvordan sjekker du tilgjengelighet og måltall?
Når du har en filtrert liste, må du vite om domenet faktisk er i ferd med å utløpe. Bruk RDAP for å sjekke registreringsstatusen. Biblioteket rdap gjør dette enkelt.
import rdap
def check_status(domain):
data = rdap.query(domain)
return data.get("status", [])
Hvis statusen inkluderer "pending delete" eller "redemption period", er det sannsynligvis på vei til å utløpe. Du kan også sjekke tilbakekoblinger med en gratis API som Open PageRank, men du trenger en API-nøkkel. Hold sjekkene lette, for mange forespørsler vil bremse deg.
Trinn 4: Hvordan planlegger du skriptet til å kjøre automatisk?
Bruk cron på Linux eller Task Scheduler på Windows. Kjør skriptet en gang om dagen, eller hver tredje time hvis du jager hete dropp. En enkel cron-linje ser slik ut:
0 6 * * * cd /path/to/script && python3 hunt.py
Det kjører hver morgen klokka 06:00. Du får resultater før den daglige rushet. Du kan også bruke schedule-biblioteket hvis du foretrekker å holde alt i Python.
Trinn 5: Hvordan får du varsler når et treff blir funnet?
E-post, Telegram eller Slack. Det enkleste er Telegram, fordi du kan sende en melding med en enkel POST-forespørsel. Opprett en bot, få chat-ID-en, og bruk requests.post for å sende en melding når filteret ditt finner noe.
import requests
def send_alert(domain):
token = "YOUR_BOT_TOKEN"
chat_id = "YOUR_CHAT_ID"
text = f"Funnet: {domain}"
url = f"https://api.telegram.org/bot{token}/sendMessage"
requests.post(url, data={"chat_id": chat_id, "text": text})
Nå får du ping på mobilen uten å røre skriptet. Bare husk å holde bot-tokenet hemmelig.
Trinn 6: Hvordan håndterer du resultatene og bestemmer deg for hva du skal kjøpe?
Når varselet kommer, må du fortsatt gjøre manuelle sjekker. Bruk en registrar som Namecheap eller GoDaddy for å se nøyaktig pris, og sjekk Wayback Machine for historisk innhold. Ikke alle utløpte domener er verdt registreringsavgiften.
Hvis du kjøper et og det viser seg å være en dud, kan du begrave ditt døde prosjekt for en dollar. Det er en billig måte å gi slipp på. Og hvis du er på jakt etter inspirasjon eller et kupp, bla gjennom gravlunden for å se hva andre har forlatt.
Hva kan gå galt med automatisert jakt?
Mye. Skriptet ditt kan knekke når nettsiden endrer HTML-strukturen. Du kan bli hastighetsbegrenset eller IP-blokkert. Du kan filtrere for aggressivt og gå glipp av gode navn, eller for løst og bli oversvømt av søppel.
Også, domenemarkedet beveger seg fort. Et navn som ser ledig ut, kan bli registrert av noen andre før cron-jobben din kjører. Det er normalt. Bygg inn et forsøk på nytt eller en ventetid, og ikke bli for knyttet til et enkelt domene.
Trenger du virkelig å automatisere dette?
Hvis du sjekker dropp én gang i uka, nei. Men hvis du oppdaterer lister daglig, sparer et skript timer. Det lar deg også handle raskere når et godt navn dukker opp. Hastighet betyr noe i jakt på utløpte domener, fordi gode navn forsvinner i løpet av minutter.
Ulempen er at automatisering kan lure deg til å tro at du er produktiv. Det er du ikke. Du filtrerer bare raskere. Det virkelige arbeidet er fortsatt i den manuelle gjennomgangen.
Hvor går du videre herfra?
Start smått. Velg én kilde, ett filter og én varslingsmetode. Få det til å fungere før du legger til kompleksitet. Utvid deretter til flere kilder eller flere filtre. Skriptet trenger ikke være perfekt, det trenger bare å kjøre.
Og hvis du ender opp med et domene du ikke vil ha, la det ikke råtne. Begrav det på dead.domains og la noen andre gi det et nytt liv. Det er syklusen for digital eiendom, og det er merkelig tilfredsstillende.
Stikk innom dead.domains for å se hva som allerede er begravet.
FAQ
Er det lovlig å skrape lister over utløpte domener?
Ja, så lenge du respekterer robots.txt og hastighetsbegrensninger. Offentlige lister er ment å bli sett, men å skrape for fort kan få deg blokkert. Bruk rimelige forsinkelser og en skikkelig user-agent. Hvis et nettsted har en betalt API, vurder å bruke den for å unngå juridiske problemer.
Hva er det beste Python-biblioteket for å parse HTML?
BeautifulSoup er det vanligste valget fordi det er lett å lære og fungerer godt med rotete HTML. For mer kompleks parsing kan du bruke lxml eller Scrapy. Start med BeautifulSoup og bytt bare når du treffer ytelsesgrenser.
Hvor ofte bør jeg kjøre skriptet for utløpte domener?
Én gang om dagen er vanligvis nok for de fleste nisjer. Hvis du jager høyt verdifulle dropp, kjør det hver tredje time. Husk at hyppigere kjøring øker sjansen for å bli hastighetsbegrenset, så balanser hastighet med sikkerhet.
Kan jeg automatisere hele kjøpsprosessen?
Delvis. Du kan automatisere sjekk av tilgjengelighet og til og med forhåndsbestilling, men selve registreringen krever vanligvis manuell bekreftelse. Noen registrarer tilbyr API-er for automatiserte kjøp, men de har ofte minimumsbeløp eller krever godkjenning. Forvent ikke en fullautomatisert pipeline.
Hva gjør jeg hvis skriptet mitt slutter å fungere?
Sjekk nettstedets HTML-struktur først. Nettsteder endrer layout ofte, så selektorene dine kan knekke. Legg til feilhåndtering i skriptet slik at det logger problemet og varsler deg. Oppdater deretter selektorene og kjør på nytt. Det er en normal vedlikeholdsoppgave.