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

السؤال

نشر

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

<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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...