Очистите содержимое внутри тега div, который не отображается как текст - PullRequest
1 голос
/ 26 апреля 2019

Я собираю обзоры Amazon, и они дают уникальный идентификатор каждому обзору, который я хотел бы очистить.Однако идентификатор никогда не отображается в виде текста, а просто существует в следующей форме:

<div id="R2XLFP626GRWEM" data-hook="review" class="a-section review aok-relative">

Я хочу, чтобы "R2XLFP626GRWEM" возвращался.

При использовании

response.xpath('.//div[@data-hook="review"]').extract()

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

Продукт, который я собираю

Содержание мне нужно:

content i need

Ответы [ 2 ]

3 голосов
/ 26 апреля 2019

Вы можете получить значения идентификатора, используя селекторы CSS вместо xpath, как показано ниже.

response.css('.a-section .review::attr(id)').extract()

или используя xpath

response.xpath('//*[@class="a-section review aok-relative"]/@id').extract()

, или изменив исходный запрос xpath

response.xpath('.//div[@data-hook="review"]/@id').extract()
0 голосов
/ 26 апреля 2019

Для сбора данных атрибутов с помощью xpath используйте @. Вы можете прочитать больше об этом здесь Например, в вашем случае:

response.xpath(".//div[@class='a-section review aok-relative']/@id").extract()
...