Как получить целую информацию между тегами с помощью Xpath? - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь получить номер статьи и некоторые другие данные с помощью Xpath, где идентификатор находится внутри тега div, окруженного другими тегами HTML и текстом:

<div class="description">
    <span class="product-name"></span><br>
    details<br>
    company<br>
    Art.-Nr. (article): 1686382
    <div class="product-icons"></div>
</div>

My Xpath выглядит так:

>>> response.xpath('//div[@id="product-list"]/div[1]/form/div[2]/div[2]').extract_first()

ответ:

'<div class="description">\n<span class="product-name"><b><a href="/gurgelloesungen-tropfen/salviathymol-n-madaus-p11548439">Salviathymol N Madaus</a></b></span><br>\nTropfen, 100 Milliliter, N3<br>\nMEDA Pharma GmbH &amp; Co. KG<br>\nArt.-Nr. (PZN): 11548439\n<div class="product-icons">\n<div class="rating"><a href="/gurgelloesungen-tropfen/salviathymol-n-madaus-p11548439#reviews" class="sp2p sp-star sp-star-5"></a><span>(<a href="/gurgelloesungen-tropfen/salviathymol-n-madaus-p11548439#reviews">13</a>)</span></div>\n</div>\n</div>'

Как я могу получить три строки данных (данные, компания, номер статьи)?

1 Ответ

1 голос
/ 14 апреля 2020

Ваш текущий код вернет node, а не text. Если вам нужно получить текст, вы должны указать на узел text, используя text().

. Именно по этой причине строка кода, приведенная ниже, извлекла текст.

response.xpath('//div[@id="product-list"]/div[1]/form/div[2]/div[2]/br[3]//following-sibling::text()').extract_first()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...