Попробуйте:
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']