数据抓取 --Beautiful Soup库的使用问题(6)使用多个属性寻找到对用的TAG,并提取数据

需求:根据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

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值