我正在做我的scrapy代码,我必须从网站https://lemkus.com/collections/maylee/products/hannah-green-cord-pants?variant=43116172181756提取数据
现在,输出应类似于如果项目缺货,则显示out_of_stock =“True”沿着尺寸,否则不显示out_of_stock
示例JSON输出:
"skus": [
{
"currency": "ZAR",
"out_of_stock": true,
"price": 850.00,
"size": "8"
},
{
"currency": "ZAR",
"price": 850.00,
"size": "10"
},
{
"currency": "ZAR",
"out_of_stock": true,
"price": 850.00,
"size": "12"
},
{
"currency": "ZAR",
"price": 850.00,
"size": "14"
}
网站的HTML代码为:
<fieldset class="fieldset-var unavailable-product" data-var-id="43116172181756">
<input class="js-variant-radio" name="id" type="radio" id="variant-1" value="43116172181756" data-inventory-qty="0">
<label for="variant-1">8</label>
</fieldset>
<fieldset class="fieldset-var variant-active " data-var-id="43116172214524">
<input class="js-variant-radio" name="id" type="radio" id="variant-2" value="43116172214524" data-inventory-qty="1">
<label for="variant-2">10</label>
</fieldset>
<fieldset class="fieldset-var unavailable-product" data-var-id="43116172247292">
<input class="js-variant-radio" name="id" type="radio" id="variant-3" value="43116172247292" data-inventory-qty="0">
<label for="variant-3">12</label>
</fieldset>
<fieldset class="fieldset-var " data-var-id="43116172280060">
<input class="js-variant-radio" name="id" type="radio" id="variant-4" value="43116172280060" data-inventory-qty="1">
<label for="variant-4">14</label>
</fieldset>
好的,那么在上面的HTML代码中,看看标签“data-inventory-qty”在哪里等于零,在一些字段中它大于0。我想做的是,如果data-inventory-qty=“0”,Show out_of_stock ='True',否则不显示缺货
我有提取货币、价格和尺寸的逻辑,我只需要通过提取data-inventory-qty的值或使用其他可能有效的属性来获取out_of_stock。
到目前为止,我已经完成的out_of_stock代码的一部分是
items=response.xpath('//div//form//div//fieldset//input[@data-inventory-qty])'.getall()
我需要像有4个大小在上面的代码,所以使4个数据的列表。如果数据库存数量是0与第一个项目,然后追加'真'在列表中,否则追加'在列表中。
因此,上述HTML列表应类似于['','True','','True']
1条答案
按热度按时间xwbd5t1u1#
像这样的东西?
输出