استخدام Beautiful Soup لاستخراج علامات HTML والتحليل الهيكلي
عند استخدام مكتبة Beautiful Soup لاستخراج جميع العلامات HTML من نص معين، يمكنك القيام بذلك بطريقة فعّالة وبسيطة. في هذا السياق، يمكنك استخدام Beautiful Soup لتحليل النص HTML واستخراج العلامات بشكل ذكي. سأقدم لك شرحاً تفصيلياً حول كيفية القيام بذلك.
أولاً وقبل أي شيء، يجب عليك استيراد مكتبة Beautiful Soup وتحديد نص HTML الذي ترغب في تحليله. يمكنك القيام بذلك كما يلي:
pythonfrom bs4 import BeautifulSoup
html = """
I am trying to get a list of all html tags from beautiful soup.
I see find all but I have to know the name of the tag before I search.
If there is text like
html = """<div>something</div>
<div>something else</div>
<div class='magical'>hi there</div>
<p>ok</p>"""
How would I get a list like
list_of_tags = ["<div>", "<div>", "<div class='magical'>", "<p>"]
I know how to do this with regex, but am trying to learn BS4
"""
soup = BeautifulSoup(html, 'html.parser')
بعد ذلك، يمكنك استخدام الأمر find_all
للبحث عن جميع العلامات في النص. يمكنك تحقيق ذلك باستخدام الكود التالي:
pythontags = [tag.name for tag in soup.find_all()]
في هذا الكود، نقوم بالتحقق من tag.name
حيث يتم استخدام tag.name
للوصول إلى اسم العلامة. تمثل soup.find_all()
جميع العلامات الموجودة في النص، ونقوم بتخزين أسماء العلامات في قائمة تسمى tags
.
بهذا، يمكنك الحصول على قائمة تحتوي على جميع العلامات الHTML الموجودة في النص. يمكنك استخدام هذه القائمة كمرجع لاحقٍ في تحليل وفهم بنية الصفحة والعلامات المستخدمة فيها.
المزيد من المعلومات
بالطبع، دعونا نوسع المحادثة للتعمق في فهم كيفية استخدام Beautiful Soup بشكل أكبر وكيف يمكن أن تكون هذه العملية مفيدة في استخراج المزيد من المعلومات من نصوص HTML.
عند العمل مع Beautiful Soup، يمكنك أيضا تحديد العديد من المعايير لتصفية البحث والتركيز فقط على العناصر التي تهمك. على سبيل المثال، إذا كنت ترغب في البحث عن جميع العناصر
التي تحتوي على فئة “magical”، يمكنك استخدام الكود التالي:
pythonmagical_divs = soup.find_all('div', class_='magical')
في هذا السياق، يقوم الكود بالبحث عن جميع العناصر
ذات الفئة “magical” وتخزينها في قائمة تسمى magical_divs
. يمكنك استخدام هذا النوع من البحث لتحديد العناصر التي ترغب فيها بناءً على معايير محددة.
بالإضافة إلى ذلك، يمكنك أيضًا استخدام Beautiful Soup لاستخراج النصوص داخل العناصر. على سبيل المثال، إذا كنت ترغب في الحصول على النص الذي يتواجد داخل العناصر
، يمكنك استخدام الكود التالي:
pythonparagraph_texts = [paragraph.get_text() for paragraph in soup.find_all('p')]
هنا، يتم استخدام get_text()
لاستخراج النص من داخل عناصر
وتخزينه في قائمة تسمى
paragraph_texts
.
بهذا، يمكنك رؤية كيف يمكن لـ Beautiful Soup أن تكون أداة قوية لتحليل واستخراج المعلومات من صفحات الويب بشكل أكثر تفصيلاً. يمكنك استكشاف المزيد من وظائفها والتعمق في التحليل الهيكلي لصفحات HTML لتحقيق فهم أعمق وشامل.