1. منتجات
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

مكتبة بايثون المفتوحة المصدر لتحليل HTML/XML واستخراج البيانات

Beautiful Soup هي مكتبة بايثون المفتوحة المصدر الرائدة في التحليل، تقوم بتحليل HTML/XML الفوضوي، استخراج النصوص/الروابط، التنقل في الشجرة، وتدعم سير عمل استخراج البيانات من الويب الحديث.

ما هو Beautiful Soup؟

أصبح استخراج البيانات من الويب مهارة أساسية للعلماء البيانات، المطورين، والباحثين الذين يحتاجون إلى استخراج معلومات قيمة من المواقع. تُعد مكتبة Beautiful Soup واحدة من أكثر مكتبات Python شهرة وسهولة في الاستخدام لتحليل مستندات HTML وXML. منذ إنشائها في عام 2004، وفّرت هذه الأداة القوية على المبرمجين ساعات لا تُحصى في مشاريع استخراج البيانات من الويب. يضمن API السهل للمكتبة، الوثائق الممتازة، ودعم المجتمع النشط أن يتمكن كل من المبتدئين والمطورين ذوي الخبرة من استخراج بيانات الويب بكفاءة.

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

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

Previous Next

البدء في استخدام Beautiful Soup

الطريقة الموصى بها والأسهل لتثبيت Beautiful Soup هي باستخدام pip. يرجى استخدام الأمر التالي لتثبيت سلس.

تثبيت مكتبة Beautiful Soup عبر pip

pip install beautifulsoup4 

يمكنك أيضًا تثبيته يدويًا؛ قم بتحميل أحدث ملفات الإصدار مباشرةً من صفحة الويب Beautiful Soup .

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

مكتبة Beautiful Soup لا تقوم بكل عملية التحليل بنفسها — بل تعتمد على محللات ناضجة مثل html.parser المدمج في Python، ومحلل lxml السريع، ومحلل html5lib الشبيه بالمتصفح. بناءً على الاحتياجات، يمكنك إعطاء الأولوية للسرعة أو للامتثال للمعايير. توفر لك هذه البنية مرونة اختيار المحلل الذي يناسب احتياجاتك، وتبادل سرعة التحليل مع المرونة، وتجربة استراتيجيات تحليل مختلفة دون تعديل كود Beautiful Soup الخاص بك، وما إلى ذلك. يُظهر الكود البسيط التالي كيف يمكن للمطورين استخدام محللات مختلفة مع Beautiful Soup.

كيف تستخدم عدة محللات لتحليل مستندات HTML داخل تطبيقات Python؟

# Using different parsers with Beautiful Soup
html_doc = "

محتوى تجريبي

" # Using lxml parser (fast) soup_lxml = BeautifulSoup(html_doc, 'lxml') # Using html5lib parser (slower but more lenient) soup_html5lib = BeautifulSoup(html_doc, 'html5lib') # Using Python's built-in parser soup_builtin = BeautifulSoup(html_doc, 'html.parser')

استخراج الروابط من صفحات الويب

استخراج الروابط هو مهمة شائعة في جمع البيانات من الويب، وهو مفيد بشكل خاص لبناء زواحف الويب. مكتبة Beautiful Soup المفتوحة المصدر تتضمن دعمًا لتحميل صفحات الويب واستخراج الروابط منها داخل تطبيقات بايثون. يوضح المثال البرمجي البسيط التالي كيفية جلب صفحة ويب حية باستخدام مكتبة requests، ثم استخراج جميع وسوم الروابط داخل تطبيقات بايثون.

كيف تستخرج الروابط من صفحات الويب باستخدام Python؟

from bs4 import BeautifulSoup
import requests

# Fetch a real webpage
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Extract all links
links = soup.find_all('a')

print(f"Found {len(links)} links:")
for link in links:
    href = link.get('href')
    text = link.get_text().strip()
    print(f"Text: {text} | URL: {href}")

# Filter links by criteria
external_links = []
for link in soup.find_all('a'):
    href = link.get('href')
    if href and href.startswith('http'):
        external_links.append(href)

print(f"\nFound {len(external_links)} external links")

البحث عن عناصر HTML محددة

إحدى أقوى ميزات Beautiful Soup هي الطريقة الطبيعية التي تسمح لك بالبحث في HTML، تقريبًا كقراءة اللغة الإنجليزية البسيطة. بدلاً من التعامل مع واجهات برمجة تطبيقات DOM المعقدة، تصف ما تريد، وتقوم Beautiful Soup بالعثور عليه لك. افترض أنك تريد العثور على جميع الروابط في صفحة ما. يمكنك استخدام طريقة find_all كما هو موضح في المثال البرمجي التالي. تُعيد الطريقة قائمة بجميع وسوم الروابط. ثم نقوم بالتكرار عبرها لاستخراج عنوان URL والنص للحصول على اسم الرابط الظاهر باستخدام واجهة برمجة تطبيقات بايثون.

كيف تبحث وتستخرج عنصر HTML محدد من صفحة الويب عبر واجهة برمجة تطبيقات Python؟

# Extract all anchor tags
links = soup.find_all('a')

for link in links:
    href = link.get('href')
    text = link.text.strip()
    print(f"Text: {text} | URL: {href}")

معالجة الترميز التلقائي

إحدى أكثر ميزات Beautiful Soup ملاءمة هي تحويل الترميز التلقائي. تقوم المكتبة تلقائيًا بتحويل المستندات الواردة إلى Unicode والمستندات الصادرة إلى UTF-8، مما يزيل أحد أكثر الصداع شيوعًا في استخراج الويب. يرجى تذكر أنك تحتاج إلى التفكير في الترميزات فقط عندما لا يحدد المستند ترميزًا لأن Beautiful Soup لا يمكنه اكتشاف الترميز تلقائيًا. في هذه الحالات النادرة، يمكنك ببساطة تحديد الترميز الأصلي يدويًا.

 عربي