Исключить элемент для его атрибута в Python 2.7 - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу исключить элементы 'input' с атрибутом 'disabled' из списка 'all_size'.

html:

<div class="container">
<input id="skuAndSize__22356651:7" disabled="" />
<input id="skuAndSize__22356650:7.5" />
</div>

мой текущий код Python:

soup = bs(response.text,"html.parser")
div = soup.find("div",{"class":"container"})
all_sizes = div.find_all("input")

size_in_stock = []
for size in all_sizes:
        size_id = size["id"]
        size_in_stock.append(size_id.split("__")[1])

Спасибо за каждый ответ

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Deep Space победил меня, поэтому примите его ответ.Но вместо этого я проверил "disabled" IS, и если это так, пропустите и перейдите к следующему пункту:

from bs4 import BeautifulSoup as bs

html = '''<div class="container">
<input id="skuAndSize__22356651:7" disabled="" />
<input id="skuAndSize__22356650:7.5" />
</div>'''


soup = bs(html,"html.parser")
div = soup.find("div",{"class":"container"})
all_sizes = div.find_all("input")

size_in_stock = []
for size in all_sizes:
        size_id = size["id"]
        if 'disabled' in size.attrs:
            continue
        size_in_stock.append(size_id.split("__")[1])
0 голосов
/ 28 февраля 2019

Вы можете просто добавить условие:

size_in_stock = []
for size in all_sizes:
    size_id = size["id"]
    if 'disabled' not in size.attrs:
        size_in_stock.append(size_id.split("__")[1])

Все это как понимание списка:

size_in_stock = [size["id"].split("__")[1] for size in all_sizes
                 if 'disabled' not in size.attrs]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...