Как проверить, существует ли класс в селекторе или нет Python Scrapy - PullRequest
0 голосов
/ 24 мая 2018

Этот вопрос уже задавался, но я не смог найти ни одного подтвержденного ответа.Так что, пожалуйста, не помечайте его как дубликат.

Я новичок в изучении и очистке веб-сайта электронной коммерции, я должен извлечь размеры продукта и отметить их на складе или нет, моя структура 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()

Но я хочу установить флаг на складе поскольку он перечисляет предметы, которые имеют недоступный класс.Есть ли способ сделать это как можно проще.

Заранее спасибо.,

1 Ответ

0 голосов
/ 24 мая 2018

Попробуйте:

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']
...