Я пытаюсь вычистить размеры обуви по этому URL: http://www.jimmyjazz.com/mens/footwear/jordan-retro-13--atmosphere-grey-/414571-016?color=Grey
Я пытаюсь получить только доступные размеры, например, только те, которые не выделены серым цветом.
Все размеры заключены в a
элементы.Доступные размеры относятся к классу box
, а недоступные - к классу box piunavailable
.
Я пробовал использовать лямбда-функции, ifs и CSS-селекторы - ни один из них не работает.Я думаю, это из-за того, как мой код структурирован.
Он структурирован следующим образом:
if
попытка
size = soup2.find('div', attrs={'class': 'psizeoptioncontainer'})
getsize = str([e.get_text() for e in size.findAll('a', attrs={'class': 'box'}) if 'piunavailable' not in e.attrs['class']])
Лямбда-попытка
size = soup2.find('div', attrs={'class': 'psizeoptioncontainer'})
getsize = str([e.get_text() for e in size.findAll(lambda tag: tag.name == 'a' and tag.get('class') == ['box piunavailable'])])
Попытка селектора CSS
size = soup2.find('div', attrs={'class': 'psizeoptioncontainer'})
getsize = str([e.get_text() for e in size.findAll('a[class="box"]'))
Итак, для предоставленного URL я ожидаю, что результатом будет строка (преобразованная из списка) всех доступных размеров - навремя написания этого вопроса, это должно быть - '8', '8.5', '9', '9.5', '10', '10.5', '11', '11.5', '13'
Вместо этого я получаю все размеры, '7.5', '8', '8.5', '9', '9.5', '10', '10.5', '11', '11.5', '12', '13'
У кого-нибудь есть идея, как заставить это работать (или знатьэлегантное решение моей проблемы)?Заранее спасибо!