إياد أحمد نشر 29 نوفمبر 2021 أرسل تقرير نشر 29 نوفمبر 2021 في المستند التالي: <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':''}) 2 اقتباس
0 Ali Haidar Ahmad نشر 29 نوفمبر 2021 أرسل تقرير نشر 29 نوفمبر 2021 يجب تحديد القيمة 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 سامح أشرف نشر 29 نوفمبر 2021 أرسل تقرير نشر 29 نوفمبر 2021 يمكنك أن تستعمل التابع 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>] يعيد هذا التابع كل العناصر التي تم إيجادها. 1 اقتباس
السؤال
إياد أحمد
في المستند التالي:
أريد الحصول على ال option المُختارة فقط (selected). استخدمت الدالة findall لكنها تعيد كل الخيارات؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.