إذا كنت تجد نفسك غالبًا تجلب البيانات من مواقع الويب ، فمن المحتمل أن تفكر في أتمتة العملية. يشار إليها أحيانًا باسم "تجريف الويب" ، وهي عملية شائعة للمواقع التي لا توفر واجهة برمجة تطبيقات أو خلاصة رسمية. بالطبع ، لن تصل إلى أي مكان إذا كان الموقع الذي تحاول جلبه غير متوفر.

إذا كنت تدير موقعك الخاص ، فمن المحتمل أنك قد تضطر إلى التعامل مع فترة التوقف عن العمل من قبل. يمكن أن يكون الأمر محبطًا ، مما يؤدي إلى فقدان الزوار ومقاطعة أي نشاط قد يكون موقعك مسؤولاً عنه. في مثل هذه الظروف ، من المفيد أن تكون قادرًا على التحقق بسهولة من توفر موقع الويب الخاص بك.

تعد Python لغة رائعة للبرمجة النصية ، كما أن تركيبتها الموجزة والقابلة للقراءة تجعل تنفيذ مدقق الموقع مهمة بسيطة.

إنشاء مدقق موقع الويب المخصص الخاص بك

تم تصميم مدقق موقع الويب خصيصًا لاستيعاب مواقع ويب متعددة في وقت واحد. يتيح لك ذلك التبديل بسهولة بين المواقع التي لم تعد تهتم بها ، أو البدء في التحقق من المواقع التي ستطلقها في المستقبل. يعد المدقق "تطبيقًا هيكليًا" مثاليًا يمكنك البناء عليه بشكل أكبر ، ولكنه يوضح نهجًا أساسيًا لجلب بيانات الويب.

instagram viewer

استيراد مكتبات في بايثون

لبدء المشروع ، يجب عليك استيراد ملف الطلبات مكتبة في Python مع يستورد وظيفة.

يستورد الطلبات

مكتبة الطلبات مفيدة للتواصل مع مواقع الويب. يمكنك استخدامه لإرسال طلبات HTTP وتلقي بيانات الاستجابة.

تخزين عناوين المواقع في قائمة

بمجرد استيراد المكتبة ، يجب عليك تحديد عناوين URL الخاصة بالموقع وتخزينها في قائمة. تسمح لك هذه الخطوة بالاحتفاظ بعناوين URL متعددة ، والتي يمكنك التحقق منها باستخدام مدقق موقع الويب.

يستورد الطلبات

website_url = [
" https://www.google.co.في",
" https://www.yahoo.com",
" https://www.amazon.co.في",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]

المتغير رابط الموقع يخزن قائمة عناوين المواقع. داخل القائمة ، حدد كل عنوان URL تريد التحقق منه كسلسلة فردية. يمكنك استخدام أمثلة عناوين URL في الكود للاختبار أو يمكنك استبدالها لبدء التحقق من مواقعك الخاصة على الفور.

بعد ذلك ، قم بتخزين الرسائل بشكل مشترك رموز استجابة HTTP. يمكنك الاحتفاظ بها في قاموس ، وفهرسة كل رسالة من خلال رمز الحالة المطابق لها. يمكن لبرنامجك بعد ذلك استخدام هذه الرسائل بدلاً من رموز الحالة لقراءة أفضل.

الحالات = {
200: "موقع الويب متاح" ،
301: "إعادة التوجيه الدائم" ،
302: "إعادة توجيه مؤقتة" ،
404: "لم يتم العثور على"،
500: "خطأ في الخادم الداخلي"،
503: "الخدمة غير متوفرة"
}

إنشاء حلقة للتحقق من حالة موقع الويب

للتحقق من كل عنوان URL بدوره ، ستحتاج إلى ذلك حلقة من خلال القائمة من المواقع. داخل الحلقة ، تحقق من حالة كل موقع عن طريق إرسال طلب عبر مكتبة الطلبات.

إلى عن على عنوان url في رابط الموقع:
محاولة:
web_response = request.get (url)
طباعة (url ، الحالات [web_response.status_code])

إلا:
طباعة (url ، الحالات [web_response.status_code])

أين:

  • لعنوان url ...يتكرر عبر قائمة عناوين URL.
  • عنوان url هو المتغير الذي تقوم الحلقة for بتعيين كل عنوان URL له.
  • حاول / باستثناءيعالج أي استثناءات التي قد تنشأ.
  • web_response هو متغير يوفر خاصية مع رمز حالة الاستجابة

مقتطف الكود بأكمله

إذا كنت تفضل مراجعة الكود بالكامل دفعة واحدة ، فإليك قائمة الرموز الكاملة للرجوع إليها.

يستورد الطلبات

website_url = [
" https://www.google.co.في",
" https://www.yahoo.com",
" https://www.amazon.co.في",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]

الحالات = {
200: "موقع الويب متاح" ،
301: "إعادة التوجيه الدائم" ،
302: "إعادة توجيه مؤقتة" ،
404: "لم يتم العثور على"،
500: "خطأ في الخادم الداخلي"،
503: "الخدمة غير متوفرة"
}

إلى عن على عنوان url في رابط الموقع:
محاولة:
web_response = request.get (url)
طباعة (url ، الحالات [web_response.status_code])

إلا:
طباعة (url ، الحالات [web_response.status_code])

وإليك مثال على تشغيل الشفرة:

قدرات البرمجة في Python في تجريف الويب

مكتبات Python للجهات الخارجية مثالية لمهام مثل تجريف الويب وجلب البيانات عبر HTTP.

يمكنك إرسال طلبات آلية إلى مواقع الويب لأداء أنواع مختلفة من المهام. قد يشمل ذلك قراءة عناوين الأخبار وتنزيل الصور وإرسال رسائل البريد الإلكتروني تلقائيًا.