如何检查 class 是否存在于选择器中 Python scrapy

how to check if a class exists in selector or not Python scrapy

这个问题已经有人问过,但我找不到任何认可的答案。所以请不要将其标记为重复。

我是 scrapy 和抓取电子商务网站的新手,我必须提取产品的尺寸并标记它们是否缺货,我的 HTML 结构如下

<ul class="possible-sizes">
 <li class="available">35</li>
 <li class="not-available">36</li>
 <li class="available">37</li>
 <li class="available">38</li>
 <li class="not-available">39</li>
 <li class="available">40</li>
<ul>

我已经使用

提取了所有 li 标签
response.css('ul.possible-sizes > li::text').extract()

但我想为列表中 无货 class 的商品设置 缺货 标志.有什么办法可以做到尽可能简单吗

提前致谢。,

尝试:

response.xpath('//ul/li/@class | //ul/li/text()')

它会return这样的结果:

['available', '35', 'not-available', '36', 'available', '37', 'available', '38', 'not-available', '39', 'available', '40']

最后,您将能够根据可用不可用字符串将它们配对并标记为缺货


其他方法是单独提取它们:

response.xpath('//ul/li[@class="available"]/text()')
response.xpath('//ul/li[@class="not-available"]/text()')

这将分别是 return:

['35', '37', '38', '40']
['36', '39']