Как извлечь текстовое поле с помощью css с помощью Xpath

#python #html #web-scraping #scrapy

#python #HTML #веб-очистка #scrapy

Вопрос:

Я пытаюсь извлечь цену из html, используя приведенное ниже выражение xpath.

 <div class="-hr -pvs -mtxs" data-prd-prices="">
    ::before
    <span dir="ltr" data-price="" class="-b -ltr -tal -fs24">₦ 3,550</span>

</div>
 

my_xpath = //div[@class='-hr -pvs -mtxs']/span/text()

Выражение xpath определяет цену, но когда я пытаюсь снизить цену, я получаю следующее

  [<Selector xpath="//div[@class='-hr -pvs -mtxs']/span/text()" data='₦ 3,550'>]
 

Я знаю, что это происходит из ::before в теге html. что это значит и как я могу извлечь цену

когда я наведу курсор на ::before в инструменте разработчика Chrome, я получаю следующее

 div.-hr -pvs -mtxs::before
 

Ответ №1:

Вы поступили правильно, но вы не извлекаете данные.

 my_xpath = "//div[@class='-hr -pvs -mtxs']/span/text()"
extracted_data = response.xpath(my_xpath).getall()
 

должен выполнить эту работу.