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

إيجاد الخيار المحدد باستخدام BeautifulSoup في بايثون

إياد أحمد

السؤال

في المستند التالي:

<select>
  <option value="0">1999/9/5</option>
  <option value="1">2010/9/5</option>
  <option value="2">2017/9/5</option>
  <option value="3" selected>220/9/5</option>
</select>

أريد الحصول على ال option المُختارة فقط (selected). استخدمت الدالة findall لكنها تعيد كل الخيارات؟

.findAll('option',attrs={'selected':''})

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يجب تحديد القيمة True ل selected ليتم استثناءها عن باقي العناصر:

from bs4 import BeautifulSoup
htmlD="""
<select>
  <option value="0">1999/9/5</option>
  <option value="1">2010/9/5</option>
  <option value="2">2017/9/5</option>
  <option value="3" selected>2020/9/5</option>
</select>
"""
soup = BeautifulSoup(htmlD,'html')
soup.find_all('option', {'selected': True})
# [<option selected="" value="3">2020/9/5</option>]
########################
# lxml في حال كنت تستخدم 
from lxml import etree
root = etree.HTML(htmlD)
root.xpath('//option[@selected]')
# [<Element option at 0x7f3661bf5b40>]

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك أن تستعمل التابع select و الذي يقبل محدد CSS كمدخل له، وبالتالي تستطيع تحديد كل العناصر المحددة Selected من خلال الكود التالي:

from bs4 import BeautifulSoup

content="""<select>
  <option value="0">1999/9/5</option>
  <option value="1">2010/9/5</option>
  <option value="2">2017/9/5</option>
  <option value="3" selected>220/9/5</option>
</select>
"""

soup = BeautifulSoup(content, features='lxml')

# تحديد العناصر المحددة فقط
selected = soup.select('option[selected]')
print(selected) # [<option selected="" value="3">220/9/5</option>]

يعيد هذا التابع كل العناصر التي تم إيجادها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...