Если вы используете BeautifulSoup, вы можете использовать атрибуты = значение селекторов
soup = BeautifulSoup(your_html, 'lxml')
values = [item['value'] for item in soup.select("input[value]")]
Вы можете посмотреть, какая комбинация селекторов дает наилучшие результаты.Выше я добавил атрибут value
, чтобы тег input
имел атрибут value
, но, вероятно, вы можете использовать следующее, чтобы убедиться, что это тег количества input
.Вы можете предположить, что есть атрибут value
.
values = [item['value'] for item in soup.select("input[data-productdata-name=quantity]")]
Не предполагая, что есть атрибут value
и указание должно быть:
values = [item['value'] for item in soup.select("input[value][data-productdata-name=quantity]")]
Это может быть самым надежным.
Если вы уверены, что пара productdata-name=quantity
атрибут = значение встречается только для количественных входных значений с атрибутами значения, то это будет выполняться быстрее:
values = [item['value'] for item in soup.select("[data-productdata-name=quantity]")]
Единственная версия первого матча:
value = soup.select_one("[data-productdata-name=quantity]")['value']
Пример:
from bs4 import BeautifulSoup
html = '''<input id="qty_cartline_change_-1313013247" class="qty" type="text" name="qty" value="1" maxlength="4" data-component="quantitybox.value" data-productdata-name="quantity">'''
soup = BeautifulSoup(html, 'lxml')
values = [item['value'] for item in soup.select("input[value]")]
print(values)