首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标记的刮取提取值

标记的刮取提取值
EN

Stack Overflow用户
提问于 2022-08-23 19:00:12
回答 1查看 38关注 0票数 0

我正在做我的刮擦代码,我必须从https://lemkus.com/collections/maylee/products/hannah-green-cord-pants?variant=43116172181756 网站提取数据。

现在的输出应该像如果项目只有缺货,然后显示出_ of _ stock =‘True’连同大小,否则不要显示out_of_stock。

示例JSON输出:

代码语言:javascript
复制
 "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 Cde是:

代码语言:javascript
复制
        <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代码中,请查看标签“qty”等于零,在某些字段中,我想要做的大于0的是,如果数据-存货-qty=“0”,那么显示出_ of _ stock =‘True’,否则就不会显示出现货。

我有提取货币、价格和尺寸的逻辑。我只需要通过提取数据的值-库存-数量或使用另一个可能工作的属性out_of_stock。

到目前为止,我为out_of_stock做的代码的一部分是

代码语言:javascript
复制
items=response.xpath('//div//form//div//fieldset//input[@data-inventory-qty])'.getall()

我需要在上面的代码中有4个大小,所以列出4个数据。如果数据-库存-qty与第一项为0,则在列表中追加“True”,否则在列表中追加“”。

所以上面的HTML列表应该是'','True','','True‘

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-23 20:46:41

像这样吗?

代码语言:javascript
复制
lst = response.xpath('//input[@class="js-variant-radio"]/@inventory-qty').getall()
result = [True if not int(i) else '' for i in lst]
print(result)

输出

代码语言:javascript
复制
[True, '', True, '']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73463895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档