Как найти динамический идентификатор в HTML-странице с scrapy - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь получить текст динамически созданного идентификатора HTML-тега.Я там каким-то образом получаю это.Код:

<p class="old-price">
    <span class="price-label">Regular Price:</span>
    <span class="price" id="old-price-8886"> ৳300 </span>
</p> 

здесь id="old-price-8886" - это динамический идентификатор.При этом идентификатор "old-price-****" является статическим для всех price классов.Мне нужно получить ৳300 значение из него.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Предполагая, что селекторы атрибутов поддерживаются, вы можете использовать атрибут = селектор значений с запуском с оператором, чтобы указать частичное совпадение.

[id^="old-price-"]

Вы можете расширить его, чтобы включить родительские классы, например:

.old-price [id^="old-price-"]
0 голосов
/ 19 декабря 2018

В идеале вы бы вообще не использовали этот идентификатор и использовали бы классы для получения данных:

>>> sel.css('.old-price .price::text').get()
' ৳300 '

Если это невозможно, вы можете использовать starts-with с xpath илиcss:

>>> sel.xpath('//span[starts-with(@id, "old-price-")]/text()').get()
' ৳300 '
>>> sel.css('span[id^="old-price-"]::text').get()
' ৳300 '
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...