Этот селектор .css("h4:contains('Budget:')::text")
выбирает тег h4
, а текст, который вы хотите, находится в его родительском элементе div
.
Вы можете использовать .css('div.txt-block::text')
, но это вернет несколько элементов , так как на странице есть несколько таких элементов. Селекторы CSS не имеют родительского псевдоэлемента, я думаю, вы можете использовать .css('div.txt-block:nth-child(12)::text')
, но если вы собираетесь очистить больше страниц, это, вероятно, не удастся на других страницах.
Лучшим вариантом будет использовать XPath:
response.xpath('//h4[text() = "Budget:"]/parent::div/text()').getall()