Получить текст от второго дочернего элемента в DIV, используя scrapy, python

Я пытаюсь получить некоторые текстовые значения с веб-сайта, и возникла небольшая проблема.

Веб-сайт с данными о недвижимости имеет несколько функций, которые я пытаюсь получить. У меня не было проблем с «основными» функциями, такими как цена. Код, который я использую, выглядит следующим образом.

def get_offer_details(self, response):
    
    offer_item = ItemLoader(item=estateItem(), selector=response)

    offer_item.add_xpath('tittle', "//h1[@class='css-11t1qm5']/text()")
    offer_item.add_xpath('price', '//strong[@class = "css-1mojccp"]/text()')

    yield offer_item.load_item()

Я могу использовать селектор класса в приведенных выше примерах.

Как я могу получить текстовое значение (в этом примере «2») из второго элемента div в этой структуре? Есть несколько функций с точно такой же структурой, единственная разница - это ария-метка (спальни, рынок и т. д.), поэтому я не могу использовать селектор «класс».

<div role = "region" aria-label = "bedrooms" class = "css-11ic80g">
    <div title = "bedrooms" class = "css-152vbi8">bedrooms<!-- -->:</div>
    <div title = "2" class = "css-1s5nyln">2</div>
</div>

Вот как это выглядит:

#I dont know.. maybe something like this? But it doesnt work..
offer_item.add_xpath('bedrooms', "//div[@aria-label='bedrooms'][1]/text()")

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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
285
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте этот XPATH, чтобы получить текст от первого ребенка:

"//div[@aria-label='bedrooms']/div[1]/text()"

или

"//div[@aria-label='bedrooms']/div[2]/text()"

для текста со второго

Другой подход с использованием following-sibling:::

offer_item.add_xpath('bedrooms', "//div[@title='bedrooms']/following-sibling::div[1]/text()")

Другие вопросы по теме