كيف تبحث عن النطاقات المنتهية تلقائيًا باستخدام بايثون
نشره Peter Nagy · بمساعدة الذكاء الاصطناعي · 8 أغسطس 2026 · 5 دقيقة قراءة
البحث التلقائي عن النطاقات المنتهية يعني استبدال التحديث اليدوي بسكريبت بايثون يسحب القوائم ويفلترها ويرسل إشعارًا. ستستخدم requests و BeautifulSoup ومهمة cron بسيطة. ليس شيئًا فاخرًا، لكنه يحوّل ساعات من العمل إلى دقائق. وإذا لقيت نطاقًا خائبًا، تقدر تدفنه بعدين.
وش المقصود بالبحث التلقائي عن النطاقات المنتهية؟
يحوّل المهمة المملة المتكررة إلى سكريبت تشغّله وتنساه. تكتب كود بايثون يجيب قوائم النطاقات المنتهية من مصادر عامة، يفحص كل اسم حسب قواعدك، ويرسلك رسالة إذا لقى شيء مناسب. لا داعي للاستيقاظ الساعة 3 الفجر لتراقب إذا نزل نطاق .io بأربعة أحرف.
الحلقة الأساسية بسيطة: جلب، تصفية، إشعار. تقدر تشغّله على سيرفر رخيص أو على جهازك باستخدام مهمة cron. السكريبت كامل ينبني في ظهرية وحدة، حتى لو ما كنت مبرمج محترف.
المتطلبات الأساسية: وش تحتاج قبل كتابة السكريبت؟
أساسيات بسيطة. تحتاج بايثون 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: كيف تصفي النطاقات ببايثون؟
التصفية هي السحر. اكتب دالة تأخذ نطاق وترجع 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، لكن راح تحتاج مفتاح API. خفف الاستعلامات عشان ما تبطئ.
الخطوة 4: كيف تجدول السكريبت عشان يشتغل تلقائيًا؟
استخدم cron على لينكس أو Task Scheduler على ويندوز. شغّل السكريبت مرة يوميًا، أو كل كم ساعة لو بتطارد النطاقات الساخنة. سطر cron بسيط كذا:
0 6 * * * cd /path/to/script && python3 hunt.py
كذا يشتغل كل صباح الساعة 6. راح تحصل النتائج قبل الزحمة اليومية. كمان تقدر تستخدم مكتبة schedule لو تفضل كل شيء ببايثون.
الخطوة 5: كيف تجي الإشعارات عند وجود تطابق؟
إيميل، تيليجرام، أو سلاك. الأسهل تيليجرام، لأنك ترسل رسالة بطلب POST بسيط. أنشئ بوت، خذ معرف الشات، واستخدم 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 عشان تشوف وش اندفن.
الأسئلة الشائعة
هل قانوني سحب قوائم النطاقات المنتهية؟
نعم، طالما تحترم ملف robots.txt ومعدل الطلبات. القوائم العامة مخصصة للمشاهدة، لكن السحب المفرط قد يسبب حظرك. استخدم تأخيرات معقولة ووكيل مستخدم مناسب. إذا الموقع يوفر API مدفوع، فكر فيه عشان تتجنب المشاكل القانونية.
وش أفضل مكتبة بايثون لتحليل HTML؟
BeautifulSoup هي الخيار الأشهر لأنها سهلة وتشتغل مع HTML الفوضوي. للتحليل الأكثر تعقيدًا، قد تستخدم lxml أو Scrapy. ابدأ بـ BeautifulSoup وانتقل غيرها لما تواجه حدود أداء.
كم مرة لازم أشغل سكريبت النطاقات المنتهية؟
مرة يوميًا تكفي لمعظم المجالات. لو تطارد نطاقات عالية القيمة، شغّله كل بضع ساعات. ضع في اعتبارك أن التشغيل المتكرر يزيد فرصة الحظر، وازن بين السرعة والأمان.
هل أقدر أتمتة عملية الشراء كاملة؟
جزئيًا. تقدر تتمتة فحص التوفر وحتى الطلب المسبق، لكن التسجيل الفعلي غالبًا يتطلب تأكيد يدوي. بعض المسجلين يقدمون API للشراء التلقائي، لكن غالبًا يتطلبون رصيد أدنى أو موافقة. لا تتوقع خط أنابيب أوتوماتيكي بالكامل.
وش أسوي إذا السكريبت توقف عن العمل؟
أول شيء افحص هيكل HTML للموقع، لأنه غالبًا ما يتغير. أضف معالجة أخطاء للسكريبت عشان يسجل المشكلة ويخطرك. بعدين حدّث المحددات وشغّله مرة ثانية. هذي صيانة طبيعية.