scrapy получить содержимое элемента, если другой элемент уже существует - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть этот HTML-скрипт:

<ul class="infoGeneraleTxt column2">
    <li>
        <h4>Année :</h4>
        <span>2017</span>
    <li>
    <li>
        <h4>Nombre de portes :</h4>
        <span>5</span>
    <li>
    <li>
        <h4>Puissance fiscale :</h4>
        <span>6 CV</span>
    <li>

Я хотел бы получить значение всего диапазона, но иногда у меня есть 3 li, а иногда только 2, поэтому я получаю неправильные значения.

Есть ли способ перехватить значение диапазона, основанное на прецедентном имени тега h4?

так, например, для тега secondde: если h4 == "Nombre de portes:", тогда дайте мне значение диапазона ниже.

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Попробуйте использовать ниже XPath:

"//li[h4='Nombre de portes :']/span"

для получения span дочернего элемента li, если li также содержит заголовок с текстом 'Nombre de portes :'

Вы также можете попробовать

"//li/h4[.='Nombre de portes :']/following-sibling::span"

для точного выбора узла span, который имеет предшествующего брата h4 с требуемым текстовым содержимым, но первого варианта IMO должно быть достаточно

0 голосов
/ 03 ноября 2018

Да.

x.select('//li[h4/text()=="Nombre de portes :"]/span')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...