ماذا سنبني اليوم؟
سنقوم ببناء سكربت Python قوي وفعال يقوم بفحص أي صفحة ويب لتحديد الصور التي تفتقر إلى سمة alt النصية أو التي تحتوي على سمة alt فارغة. هذا الفحص ضروري لتحسين محركات البحث (SEO) وتجربة المستخدم وإمكانية الوصول.
لماذا Alt Text مهم؟
ملاحظة تقنية هامة: الـ Alt Text (النص البديل) ليس مجرد وصف للصورة، بل هو عنصر حيوي لتحسين محركات البحث (SEO) حيث يساعد محركات البحث على فهم محتوى الصورة وربطها بالكلمات المفتاحية ذات الصلة. كما أنه أساسي لإمكانية الوصول، حيث يصف الصورة للمستخدمين الذين يعانون من ضعف البصر ويستخدمون قارئات الشاشة، مما يضمن تجربة متساوية للجميع.
بدون Alt Text، تفقد محركات البحث سياقاً مهماً، ويواجه المستخدمون الذين يعتمدون على التقنيات المساعدة صعوبة في فهم المحتوى البصري. لذلك، فإن أتمتة فحص الصور الناقصة لـ Alt Text هي خطوة استراتيجية لأي موقع ويب يهتم بالـ SEO وإمكانية الوصول.
الأدوات التي سنحتاجها
- Python 3: لغة البرمجة التي سنستخدمها.
- Requests: مكتبة Python للتعامل مع طلبات HTTP.
- BeautifulSoup4: مكتبة Python لتحليل مستندات HTML و XML.
للتثبيت، يمكنك استخدام الأوامر التالية في سطر الأوامر (Terminal/CMD):
pip install requests beautifulsoup4خطوات التنفيذ
- استيراد المكتبات الضرورية.
- تحديد عنوان URL للصفحة التي سيتم فحصها.
- إرسال طلب HTTP للحصول على محتوى الصفحة.
- تحليل محتوى HTML باستخدام BeautifulSoup.
- البحث عن جميع عناصر
<img>. - فحص كل عنصر
<img>للتأكد من وجود سمةaltوأنها ليست فارغة. - الإبلاغ عن الصور التي تفتقر إلى Alt Text.
الكود
هذا هو الكود الكامل الذي سيقوم بالمهمة:
import requestsfrom bs4 import BeautifulSoupdef check_images_for_alt_text(url): """ يفحص صفحة ويب محددة للعثور على الصور التي تفتقر إلى Alt Text. :param url: عنوان URL للصفحة المراد فحصها. :return: قائمة بعناوين URL للصور التي تفتقر إلى Alt Text. """ print(f"جاري فحص الصفحة: {url}") missing_alt_images = [] try: response = requests.get(url) response.raise_for_status() # يرفع استثناء لأكواد حالة HTTP السيئة (4xx أو 5xx) except requests.exceptions.RequestException as e: print(f"حدث خطأ أثناء جلب الصفحة {url}: {e}") return missing_alt_images soup = BeautifulSoup(response.text, 'html.parser') images = soup.find_all('img') if not images: print("لم يتم العثور على أي صور في هذه الصفحة.") return missing_alt_images for img in images: src = img.get('src', 'N/A') alt_text = img.get('alt') # تحقق مما إذا كانت سمة alt غير موجودة أو فارغة أو تحتوي فقط على مسافات بيضاء if alt_text is None or not alt_text.strip(): missing_alt_images.append(src) print(f" - تم العثور على صورة تفتقد لـ Alt Text: {src}") return missing_alt_imagesif __name__ == "__main__": # استبدل هذا بعنوان URL للصفحة التي تريد فحصها target_url = "https://example.com" # يمكن تغيير هذا لاحقاً ليكون مدخل من المستخدم أو قائمة من الروابط images_without_alt = check_images_for_alt_text(target_url) print("\n--- تقرير فحص Alt Text ---") if images_without_alt: print(f"تم العثور على {len(images_without_alt)} صورة تفتقد لـ Alt Text في الصفحة {target_url}:") for img_src in images_without_alt: print(f"- {img_src}") else: print(f"جميع الصور في الصفحة {target_url} تحتوي على Alt Text.")النتيجة النهائية المتوقعة
بعد تشغيل الكود أعلاه، سيقوم السكربت بطباعة تقرير مفصل إلى سطر الأوامر (Terminal). إذا كانت هناك صور تفتقر إلى سمة alt أو تحتوي على سمة alt فارغة، فسيتم عرض عنوان URL الخاص بالصفحة، وعدد الصور المتأثرة، وقائمة بعناوين URL المصدر (src) لتلك الصور.
مثال على الإخراج:
جاري فحص الصفحة: https://example.com
- تم العثور على صورة تفتقد لـ Alt Text: /images/promo.jpg
- تم العثور على صورة تفتقد لـ Alt Text: /assets/logo-old.png
--- تقرير فحص Alt Text ---
تم العثور على 2 صورة تفتقد لـ Alt Text في الصفحة https://example.com:
- /images/promo.jpg
- /assets/logo-old.png
إذا كانت جميع الصور تحتوي على Alt Text سليم، فستظهر رسالة تفيد بذلك.