اذهب إلى المحتوى

السؤال

نشر

عندما أحاول بسحب بعض البيانات من صفحة معينة ويصبح لدي كود HTML بالكامل، أحتاج إلى إستخراج كل الأصناف Classes الموجودة في كل العناصر، هنا  مثال لكود HTML بسيط:

<body>
  <div class="class-1">
      <div class="class-2">some content</div>
      <div class="class-3">some content</div>
      <div class="class-4">some content</div>
  </div>
  <div class="class-1">
      <div class="class-2">another content</div>
      <div class="class-3">another content</div>
      <div class="class-4">another content</div>
  </div>
</body>

كيف يمكنني الحصول على قائمة بكل الصناف الموجودة في الصفحة بإستخدام Beautifull soup في بايثون؟ لتصبح النتيجة بالشكل التالي:

['class-1', 'class-2', 'class-3', 'class--4']

 

Recommended Posts

  • 1
نشر

يمكنك تنفيذ ذلك بالشكل التالي :

classes = []
for element in soup.find_all(class_=True):
    classes.extend(element["class"])

أو :

classes = [value
           for element in soup.find_all(class_=True)
           for value in element["class"]]

مثال تطبيقي :


from bs4 import BeautifulSoup

data = """
<div class="class1">
<span class="class2">some text</span>
<span class="class3">some text</span>
<span class="class4">some text</span>
</div>
"""

soup = BeautifulSoup(data, "html.parser")

classes = [value
           for element in soup.find_all(class_=True)
           for value in element["class"]]

print(classes)

# Returns
# ['class1', 'class2', 'class3', 'class4']

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...