Например,
, если вы хотите, чтобы все теги value
из input
вы могли сделать это
from bs4 import BeautifulSoup
sdata = """
<div class='styled-radio'>
<input type="radio" name="variant_id" id="variant_id_105589" value="105589"
class="js-change-quantity" data-count-on-hand="1" data-options-threshold="5"
/>
<label for="variant_id_105589">41</label>
<input type="radio" name="variant_id" id="variant_id_105591" value="105591"
class="js-change-quantity" data-count-on-hand="1" data-options-threshold="5"
/>
<label for="variant_id_105591">43</label>
</div>
"""
soup = BeautifulSoup(sdata)
mydivs = soup.findAll('div', {'class': 'styled-radio'})
for div in mydivs:
# if you want to print a dict of all values use it
# for children in div.findAll():
# print(children.attrs)
# if you want to print a specific attr from a specific tag use it
for children in div.findAll('input'): # find all inputs from `div`
print(children['value']) # get `value` attrs
Выход
105589
105591
Обновить @bobrobbob прав, мы можем получить атрибуты без findChildren()
, а также без attrs
, это также будет работать, и вывод будет таким же