Scrapy CSS / XPath Селекторы - PullRequest
       31

Scrapy CSS / XPath Селекторы

0 голосов
/ 01 апреля 2020

Я пытаюсь захватить текст из нескольких элементов HTML на этой странице примеров ниже:

<p dir="ltr" data-test-bidi="">I’ve really loved using this app...</p>

<time data-test-customer-review-date="" datetime="2019-07-21T22:32:44.000Z" aria-label="July 21, 2019" class="we-customer-review__date">07/21/2019</time>

Я пробовал несколько разных селекторов:

response.xpath('//time[@class="we-customer-review__date"]/text()')

response.css('p').attrib['dir'] <- это возвращает ошибку </p>

response.xpath('//p/text()').getall() возвращает все <p> элементы, но я не могу отфильтровать до тех, которые я хочу. Есть предложения?

1 Ответ

0 голосов
/ 01 апреля 2020

Вы можете сделать следующее:

ptags = response.css('p') #selects all the p tabs
texts =[]
for ptag in ptags:
    if ptag.css('p::attr(dir)').get() is not None: #selects the ones that have dir prop
         text = ptag.css('p::text').get() #extracts the text
         texts.append(text) #append to the list or whatever
...