需求:根据TAG的多个属性,提取下面的 skuname 对应的stock 的数据。
方法:
'''第一步:识别出,要找的tag 是唯一的tag里面同时包含,属性 type='hidden',promotion_price,
member_price。
第二步:使用顶 find_all(属性1=某个字符串,属性2=re.compile(''),属性3=re.compile(''))
属性3=re.compile('') 意思是 只要有这个属性值就好了,至于是什么不管。
第三步:因为find_all 的结果是迭代器,所以需要 使用for 循环,提取库存和尺寸的数据。(使用get('属性名称')'''
stock_list = soup.find_all('input', type='hidden',promotion_price=re.compile(''),member_price=re.compile(''))
print(stock_list)
for i in range(len(stock_list)):
size = stock_list[i].get('skuname')
size_number = stock_list[i].get('stock')
print('16.尺寸:', size)
print('17.尺寸库存:', size_number)
执行结果:
[<input id="goods_sku0" js-sku="sku" member_price="2500" original_price="0.00" price="2500" promotion_price="2500.00" skuid="40544" skuname="白色 XXL" stock="3" type="hidden" value="11:1473;5:1549;"/>, <input id="goods_sku1" js-sku="sku" member_price="2500" original_price="0.00" price="2500" promotion_price="2500.00" skuid="40545" skuname="白色 M" stock="0" type="hidden" value="11:1473;5:1546;"/>, <input id="goods_sku2" js-sku="sku" member_price="2500" original_price="0.00" price="2500" promotion_price="2500.00" skuid="40546" skuname="白色 S" stock="3" type="hidden" value="11:1473;5:1545;"/>, <input id="goods_sku3" js-sku="sku" member_price="2500" original_price="0.00" price="2500" promotion_price="2500.00" skuid="40547" skuname="白色 XL" stock="2" type="hidden" value="11:1473;5:1548;"/>, <input id="goods_sku4" js-sku="sku" member_price="2500" original_price="0.00" price="2500" promotion_price="2500.00" skuid="40548" skuname="白色 L" stock="3" type="hidden" value="11:1473;5:1547;"/>]
16.尺寸: 白色 XXL
17.尺寸库存: 3
16.尺寸: 白色 M
17.尺寸库存: 0
16.尺寸: 白色 S
17.尺寸库存: 3
16.尺寸: 白色 XL
17.尺寸库存: 2
16.尺寸: 白色 L
17.尺寸库存: 3