我想从列表'all_size'中使用'disabled'属性排除元素'input'。
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])
谢谢你的每一个答案
您只需添加一个条件:
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]
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])