如何检查选择器中是否存在类,而不是Python scrapy

时间:2018-05-24 06:47:24

标签: python-3.x scrapy web-crawler scrapy-spider

这个问题已被提出,但我找不到任何已批准的答案。所以请不要将其重复标记。

我是一个新的scrapy and scraping电子商务网站,我提取产品的大小并标记它们是否缺货,我的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>
&#13;
&#13;
&#13;

我已使用

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

但我想为不可用类的列表项设置缺货标记。有没有办法尽可能简单。

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试:

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

它将返回如下结果:

['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()')

分别会返回:

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