Я всегда предпочитаю использовать XPath вместо CSS. В XPath вы можете использовать функцию contains
, чтобы указать, какие классы вы хотите выбрать, например:
response.xpath('//span[contains(@class, "def-price selectorgadget")]//text()').extract()
- Это будет извлекать текст из ALL тегов
<span>
на странице, на которой этот класс содержал выражение def-price selectorgadget
, будь то selectorgadget_rejected
или selectorgadget_suggested
.
Или с использованием предварительно выбранного product_info
:
product_info = response.css('.item-bg')
for product in product_info:
product_price_sn = product.xpath('div/div/div/span[contains(@class, "def-price selectorgadget")]//text()').extract()
Использование полного пути, потому что был опубликован только фрагмент HTML
Если вы хотите, чтобы только 99 за пределами , теги <i>
использовали /text()
вместо //text()
CSS Селектор
Теперь, если вы хотите придерживаться селекторов CSS, этот может работать:
product.css('.price-box span::text').extract()