Pythonで期限切れドメインの狩りを自動化する方法
公開:Peter Nagy・AI支援 · 2026年8月8日 · 5分で読めます
期限切れドメインの自動ハンティングとは、手動でのリスト更新をやめ、Pythonスクリプトがドロップリストを定期的に取得し、条件に合うものをフィルタリングして通知する仕組みです。requestsとBeautifulSoup、cronジョブを使えば、数時間かかっていた作業が数分に短縮されます。もしハズレを引いても、後で埋めることもできます。
期限切れドメインの自動ハンティングとは?
単調で繰り返しの作業を、セットしたら放置できるスクリプトに変えることです。Pythonコードで公開されている期限切れドメインリストを取得し、自分のルールに合うものをチェックして、マッチしたらメッセージを送るようにします。もう深夜3時に4文字の.ioが落ちるかどうか確認する必要はありません。
基本のループは「取得→フィルタ→通知」の3ステップだけ。安いVPSか自分のマシンでcronジョブを動かせばOK。プロの開発者でなくても、半日あれば作れます。
事前準備:スクリプトを書く前に必要なもの
いくつか基本が必要です。Python 3.8以上とテキストエディタを用意してください。また、登録日を確認するためにWhoisXMLAPIやRDAPなどのドメインAPIサービスの無料アカウントがあると便利です。このステップの費用はゼロ円。高いレート制限が必要なら有料プランも選べます。
そして、明確なフィルタ条件を決めておきましょう。文字数、長さ、拡張子、被リンク数、ニッチなど、何を探しているのかを明確に。コードを書く前に書き出しておかないと、インターネット上のランダムなドメインすべてに通知が来るスクリプトができあがります。
ステップ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を返す関数を書きましょう。例えば、ハイフンなしのちょうど6文字の.comのみ欲しい場合、こうします。
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」が含まれていれば、期限切れの可能性が高いです。Open PageRankなどの無料APIで被リンク数もチェックできますが、APIキーが必要です。チェックは軽めに。リクエストが多すぎると処理が遅くなります。
ステップ4:スクリプトを自動実行するには?
Linuxならcron、Windowsならタスクスケジューラを使います。1日1回、またはホットなドロップを狙うなら数時間おきに実行しましょう。cronの設定例は次のとおりです。
0 6 * * * cd /path/to/script && python3 hunt.py
これで毎朝6時に実行されます。日中の競争が始まる前に結果を確認できます。Pythonだけで完結させたいならscheduleライブラリも使えます。
ステップ5:マッチしたら通知を受け取るには?
メール、Telegram、Slackなどが使えます。一番簡単なのはTelegramです。POSTリクエスト1つでメッセージを送れます。ボットを作成し、チャット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で過去のコンテンツをチェックしましょう。すべての期限切れドメインが登録料に見合うわけではありません。
もし購入したドメインがハズレだったら、dead.domainsで1ドルで埋めることができます。手放すには安い方法です。また、インスピレーションや掘り出し物を探しているなら、墓地を閲覧して他の人が捨てたドメインを見てみましょう。
自動ハンティングで何が問題になる?
たくさんあります。サイトのHTML構造が変わればスクリプトは壊れます。レート制限やIPブロックに遭うかもしれません。フィルタが厳しすぎて良い名前を逃すこともあれば、緩すぎてジャンクに埋もれることもあります。
また、ドメイン市場は動きが速いです。空きに見えた名前も、cronジョブが実行される前に他の誰かに登録されているかもしれません。それは普通のこと。リトライや待機時間を組み込んで、特定のドメインに固執しないようにしましょう。
本当に自動化が必要?
週に一度ドロップをチェックする程度なら、必要ありません。しかし毎日リストを更新しているなら、スクリプトは時間を節約してくれます。さらに、良い名前が出たときに素早く行動できます。期限切れドメインの世界ではスピードが重要です。良い名前は数分で消えてしまいますから。
欠点は、自動化によって生産的に感じてしまうことです。実際はフィルタリングが速くなっただけ。本当の作業は手動レビューにあります。
次のステップは?
小さく始めましょう。1つのソース、1つのフィルタ、1つの通知方法を選び、それを動かしてから複雑さを追加していきます。スクリプトは完璧である必要はありません。動けばいいのです。
そして、不要なドメインが手元に残ったら、腐らせないでください。dead.domainsで埋めて、他の誰かに第二の人生を与えましょう。デジタル資産の循環は、なぜか心地よいものです。
dead.domainsで、すでに埋められたドメインを見てみましょう。
FAQ
期限切れドメインリストのスクレイピングは合法ですか?
はい、robots.txtとレート制限を守る限り問題ありません。公開リストは閲覧目的ですが、高速でスクレイピングするとブロックされる可能性があります。適切な遅延とユーザーエージェントを使用しましょう。サイトが有料APIを提供しているなら、法的な問題を避けるためにも利用を検討してください。
HTML解析に最適なPythonライブラリは?
BeautifulSoupが最も一般的です。学習が簡単で、複雑なHTMLにも対応できます。より高度な解析が必要なら、lxmlやScrapyもあります。まずはBeautifulSoupから始めて、パフォーマンスに問題が出たら切り替えましょう。
スクリプトはどのくらいの頻度で実行すべき?
ほとんどのニッチでは1日1回で十分です。高価値のドロップを狙うなら数時間おきに実行しましょう。ただし、頻度を上げるとレート制限に掛かる可能性が高まるので、スピードと安全性のバランスを考えてください。
購入プロセス全体を自動化できますか?
部分的に可能です。在庫確認やバックオーダーは自動化できますが、実際の登録は通常手動確認が必要です。一部のレジストラは自動購入のAPIを提供していますが、最低残高や承認が必要なことが多いです。完全に手放しのパイプラインは期待しないでください。
スクリプトが動かなくなったらどうすればいい?
まずウェブサイトのHTML構造を確認しましょう。サイトは頻繁にレイアウトを変更するため、セレクタが壊れることがあります。スクリプトにエラーハンドリングを追加して、問題をログに記録し通知するようにします。その後、セレクタを更新して再実行します。これは通常のメンテナンス作業です。