• 1

كيف أحصل على اسم نطاق من رابط في بايثون؟

أحتاج في تطبيقي المكتوب باستخدام إطار ويب جانغو إلى الحصول على أسماء نطاقات (دومين) من روابط متنوعة فما الطريقة الصحيحة لفعل ذلك؟

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

توجد عدة طرق لفعل ذلك في جانغو، فيمكنك على سبيل المثال استخدام دالة extract من مكتبة tldextract (بعد تحميلها وتثبيتها) كما في المثال التالي:

>>> import tldextract
>>> tldextract.extract('http://forums.news.cnn.com/')
ExtractResult(subdomain='forums.news', domain='cnn', suffix='com')

أو يمكنك استخدام دالة urlparse من مكتبة urlparse مع دالة format لاستخرج اسم النطاق كما في المثال التالي:

from urlparse import urlparse
parsed_uri = urlparse( 'https://academy.hsoub.com/freelance/productivity/%D9%83%D9%8A%D9%81-%D8%AA%D8%B3%D8%AA%D8%BA%D9%84-%D8%A7%D9%84%D8%B3%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D9%8A%D8%A7%D9%85-%D8%A7%D9%84%D8%AA%D9%8A-%D9%84%D8%A7-%D8%AA%D8%AC%D8%AF-%D9%81%D9%8A%D9%87%D8%A7-%D9%85%D8%B4%D8%A7%D8%B1%D9%8A%D8%B9-%D9%84%D9%84%D8%B9%D9%85%D9%84-%D8%B9%D9%84%D9%8A%D9%87%D8%A7-%D9%84%D8%A8%D9%86%D8%A7%D8%A1-%D9%85%D8%B4%D8%B1%D9%88%D8%B9%D9%83-%D8%A7%D9%84%D8%AC%D8%A7%D9%86%D8%A8%D9%8A%D8%9F-r115/' )
domain = '{uri.scheme}://{uri.netloc}/'.format(uri=parsed_uri)
print domain

# gives
'http://academy.hsoub.com/'

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

كتبت عن الأمر منذ عدة أشهر في مدونتي الشخصية، يمكنك تفقده من هنا: الحصول على نطاق Domain رابط ما

وتجد بالمرفقات الملف الذي يحوي محتوى ما نشرته على مدونتي..

بتاريخ 20 ساعات قال هشام رزق الله:

أو يمكنك استخدام دالة urlparse من مكتبة urlparse مع دالة format لاستخرج اسم النطاق كما في المثال التالي:


from urlparse import urlparse
parsed_uri = urlparse( 'https://academy.hsoub.com/freelance/productivity/%D9%83%D9%8A%D9%81-%D8%AA%D8%B3%D8%AA%D8%BA%D9%84-%D8%A7%D9%84%D8%B3%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D9%8A%D8%A7%D9%85-%D8%A7%D9%84%D8%AA%D9%8A-%D9%84%D8%A7-%D8%AA%D8%AC%D8%AF-%D9%81%D9%8A%D9%87%D8%A7-%D9%85%D8%B4%D8%A7%D8%B1%D9%8A%D8%B9-%D9%84%D9%84%D8%B9%D9%85%D9%84-%D8%B9%D9%84%D9%8A%D9%87%D8%A7-%D9%84%D8%A8%D9%86%D8%A7%D8%A1-%D9%85%D8%B4%D8%B1%D9%88%D8%B9%D9%83-%D8%A7%D9%84%D8%AC%D8%A7%D9%86%D8%A8%D9%8A%D8%9F-r115/' )
domain = '{uri.scheme}://{uri.netloc}/'.format(uri=parsed_uri)
print domain

# gives
'http://academy.hsoub.com/'

 

بخصوص هذه النقطة أفضل إستخدام التالي:

domain = urlparse.urlsplit(url)[1].split(':')[0]

وهذا ملف أشرح به شفرتي.

شفرة وشرحها.txt

الحصول على نطاق Domain رابط ما.txt

تمّ تعديل بواسطة samer_jabal
عدلته من أجل إضافة تفاصيل.
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن