BeautifulSoup: تحليل HTML واستخراج البيانات

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة عن BeautifulSoup

BeautifulSoup هي واحدة من أشهر وأقوى مكتبات Python لتحليل مستندات HTML و XML. توفر واجهة بسيطة وبديهية للتنقل والبحث وتعديل شجرة عناصر HTML. تُستخدم BeautifulSoup على نطاق واسع من قبل المطورين في مهام Web Scraping، واستخراج البيانات المنظمة من صفحات الويب، وتحليل محتوى المواقع، وأتمتة عمليات جمع المعلومات.

ما هي BeautifulSoup ولماذا تحتاجها؟

تعمل BeautifulSoup عن طريق إنشاء هيكل شجري من مستند HTML أو XML، مما يسهل العثور على العناصر واستخراجها وتعديلها. المكتبة فعالة بشكل خاص عند التعامل مع HTML غير المنظم، حيث تقوم تلقائيًا بتصحيح أخطاء الترميز وإنشاء شجرة عناصر صالحة.

أبرز حالات الاستخدام:

  • استخراج البيانات من المواقع الإلكترونية للتحليل
  • تحليل خلاصات الأخبار و RSS
  • أتمتة جمع معلومات المنتجات في المتاجر الإلكترونية
  • تحليل هيكل صفحات الويب
  • تنظيف ومعالجة محتوى HTML

مزايا وإمكانيات المكتبة

المرونة وسهولة الاستخدام

توفر BeautifulSoup واجهة برمجية بديهية تسمح بالتعامل مع مستندات HTML ككائنات Python عادية. يمكنك الوصول إلى العناصر حسب الوسوم (Tags)، الخصائص (Attributes)، الفئات (Classes)، وغيرها من الميزات.

دعم محللات متعددة

تدعم المكتبة عدة محللات (Parsers)، لكل منها مميزاته:

  • html.parser — المحلل المدمج في Python (لا يتطلب تبعيات إضافية)
  • lxml — محلل سريع وموثوق مع دعم XPath
  • html5lib — محلل متوافق تمامًا مع سلوك المتصفحات

التعامل مع HTML غير الصحيح

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

التكامل مع المكتبات الشائعة

تتكامل بسهولة مع مكتبة requests لتحميل صفحات الويب، و urllib للتعامل مع عناوين URL، و selenium لمعالجة المحتوى الديناميكي، وأدوات أخرى في نظام Python البيئي.

دعم التعبيرات المنتظمة

إمكانية استخدام التعبيرات المنتظمة (Regular Expressions) لاستعلامات البحث المعقدة وتصفية العناصر حسب الأنماط.

استخراج البيانات وتعديلها

مجموعة كاملة من الأدوات لاستخراج النصوص والخصائص، وتحرير عناصر HTML، وإنشاء عناصر جديدة.

التثبيت والإعداد الأساسي

تثبيت المكتبة الأساسية

pip install beautifulsoup4

تثبيت المحللات الإضافية

لاستخدام المحلل السريع lxml:

pip install lxml

للحصول على أقصى توافق مع المتصفحات:

pip install html5lib

الاستيراد الأساسي

from bs4 import BeautifulSoup
import requests

إنشاء كائن BeautifulSoup

تحميل مستند HTML من نص

html = """
<html>
<head><title>صفحة مثال</title></head>
<body>
    <div class="content">
        <h1>عنوان رئيسي</h1>
        <p>نص الفقرة</p>
    </div>
</body>
</html>
"""

soup = BeautifulSoup(html, 'html.parser')

تحميل HTML باستخدام requests

import requests
from bs4 import BeautifulSoup

url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

توصيات